Foros del Web » Programando para Internet » PHP »

preg_match() se niega a hacerme caso :p

Estas en el tema de preg_match() se niega a hacerme caso :p en el foro de PHP en Foros del Web. Hola compañeros, estoy intentando hacer una minúscula verificación de datos de una variable pasada por POST. lo intento hacer con expresiones regulares de esta forma: ...
  #1 (permalink)  
Antiguo 06/05/2008, 11:04
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
preg_match() se niega a hacerme caso :p

Hola compañeros, estoy intentando hacer una minúscula verificación de datos de una variable pasada por POST.
lo intento hacer con expresiones regulares de esta forma:
Código PHP:
if(!preg_match('/^[a-zA-Z0-9_]{1,10}$/'$cadena)) {
  
ERROR!!

Decir que en un principio parece que funciona bien, ya que la primera prueba es la de no poner nada... bien, me salta el error, entonces, intento poner mas de 10 caracteres, pero no me salta error :(

La variable cadena llega correctamente, como ya he dicho, la recojo por POST

Ya que estamos, queria preguntar como seria para permitir caracteres especiales (á, É, Ñ...)

Gracias.
  #2 (permalink)  
Antiguo 06/05/2008, 11:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: preg_match() se niega a hacerme caso :p

los caracteres especiales se contemplan solos... mientras hagas grupos con caracteres

por ej.. con a-z inclusive, permite la existencia de ñ ((por latin))

VEO: ke la expresion regular es correcta... ke sera???
  #3 (permalink)  
Antiguo 06/05/2008, 11:22
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Re: preg_match() se niega a hacerme caso :p

Gracias por contestar.

Está bien saber lo de los caracteres especiales.
La cosa es que estoy probando diferentes formas de hacer la expresion, incluso con ereg, y no me la verifica bien, no lo entiendo, incluso limitando el uso a sólo números, por probar, y tampoco, aunque le ponga mas caracteres de los permitidos, me la acepta :(
  #4 (permalink)  
Antiguo 06/05/2008, 11:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: preg_match() se niega a hacerme caso :p

es extraño... ya ke la expresion en realidad es muy sencilla, yo te recomiendo preg_match()

Código PHP:
print preg_match('/^[a-z0-9_]{1,10}$/i''abcdefghijklmnñopqrstuvwxyz')? 'si''no'
acabo de testear esta linea... y si, funciona.... animo!
  #5 (permalink)  
Antiguo 06/05/2008, 11:44
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Re: preg_match() se niega a hacerme caso :p

Gracias pateketrueke, con esa expresión si que me funciona.

Aunque sigo dándole vueltas a la que yo intenté hacer y no conseguía hacer funcionar :(



Seguiré peleándome con las expresiones regulares :D

EDITO: Después de probar unos cuantos casos, puedo decir que no me verifica los caracteres especiales :( cuando pongo alguno, no me pasa la expresion regular :( Alguna idea?

EDITO 2 :): con esta expresion, si funciona: '/^[a-z0-9_-áéíóúàèìòù]{1,10}$/i' Decir que la ñ antes si que la verificaba, pero los acentos, no, pero añadiendo los caracteres a la propia expresion, ya si los coje ;)

EDITO 3: Falsa alarma, no me reconoce los acentos :(

Última edición por DooBie; 06/05/2008 a las 12:53
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 19:21.