Foros del Web » Programando para Internet » Javascript »

expresion regular

Estas en el tema de expresion regular en el foro de Javascript en Foros del Web. Hola a todos. Estoy buscando una expresion regular que tenga las siguientes condiciones: - Permita solo caracteres alfanumericos (tb mayusculas). - Permita espacios en blanco, ...
  #1 (permalink)  
Antiguo 07/09/2011, 08:54
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
expresion regular

Hola a todos.

Estoy buscando una expresion regular que tenga las siguientes condiciones:

- Permita solo caracteres alfanumericos (tb mayusculas).
- Permita espacios en blanco, pero solo espacios, no tabulaciones, etc...
- Los espacios en blanco no pueden estar al principio o final de la cadena.
- Los espacios en blanco pueden ser varios pero no concatenados (juntos).


Es en estos tres puntos en negrita donde estoy encontrando problemas. Alguien puede echarme un cable, alguna pista...

Ya de paso quiero preguntar sobre la expresion: "+$" que se suele utilizar al final de la expresion regular. Por ejemplo, hasta ahora utilizaba la siguiente expresion:

^[0-9a-zA-Z]+$

En ella, entiendo todo (ni que fuera muy dificil ) pero no entiendo esos dos caracteres del final.

"+" para encontrar lo de la izda 1 o mas veces.
"$" para encontrar el final de linea (dicho de paso, no entiendo esto de "final de linea" muy bien....quiere decir final de la cadena que se va a evaluar???)

ahora....ambos caracteres juntos...implican algo mas???

Bueno, muchas gracias por la atencion.

1 saludo a todos!
  #2 (permalink)  
Antiguo 07/09/2011, 11:15
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
Respuesta: expresion regular

Bueno, he conseguido acercarme bastante con esta expresion:

^[0-9a-zA-Zñ]+[ ?0-9a-zA-Zñ]+[^ ]$

pero me falla el asunto de los dos espacios seguidos y las tabulaciones.

alguna idea de como podria conseguirlo??
  #3 (permalink)  
Antiguo 07/09/2011, 17:22
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
Respuesta: expresion regular

Por si a alguien le sirve en un futuro, creo que lo he logrado:

^[0-9a-zA-Zñ]+( ?[0-9a-zA-Zñ])+$
  #4 (permalink)  
Antiguo 08/09/2011, 06:01
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: expresion regular

parece que la expresión ha de ser bastante mas compleja que esa que muestras. no admites espacios al principio ni al final, tampoco admites salto de línea, pero admites espacios entre palabras
  #5 (permalink)  
Antiguo 08/09/2011, 06:11
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: expresion regular

Dato de color, si vas a permitir mayusculas/minusculas indistintamente podes simplificar la expresión:

Código Javascript:
Ver original
  1. /[a-zA-Z]\d[a-zA-Z]/

Se convierte en

Código Javascript:
Ver original
  1. /[a-z]\d[a-z]/i
__________________
blog | @aijoona
  #6 (permalink)  
Antiguo 08/09/2011, 07:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: expresion regular

nuevo dato de color si quieres aceptar letras acentuadas y ñ. puedes usar xdd metacharacter
Cita:
[\da-z\xc0-\xff]
  #7 (permalink)  
Antiguo 08/09/2011, 11:52
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
Respuesta: expresion regular

Muchas gracias a ambos por los "datos de color"

Solo una duda que me surge a raiz de tu codigo IsaBelM

Creo que los metacaracteres \xc0-\xff corresponden a un rango de caracteres en hexadecimal. Si es asi, como puedo saber que corresponden exactamente a los acentos y ñ?? Es decir, no quiero que en ese rango se cuele ningún otro caracter mas. He estado testeandolo y la verdad que, hasta donde he probado, funciona a la perfección pero prefiero estar completamente seguro.

1 saludo y de nuevo, gracias a ambos por la ayuda!
  #8 (permalink)  
Antiguo 08/09/2011, 12:54
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: expresion regular

el rango equivale a otro caracteres aparte de las letras acentuadas y la ñ. en caso que no quieras que se acepten esos caracteres (vocales con diéresis, acento circunflejo, ...) cambia \xc0-\xff por áéíóúÁÉÍÓÚ

Última edición por IsaBelM; 08/09/2011 a las 13:01
  #9 (permalink)  
Antiguo 08/09/2011, 14:38
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
Respuesta: expresion regular

Perfecto Isabel. Muchas gracias!

Etiquetas: expresion, regular
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:25.