Foros del Web » Programando para Internet » PHP »

Expresiones regulares

Estas en el tema de Expresiones regulares en el foro de PHP en Foros del Web. Hola llevo dos dias atascado con esto y no logro entender muy bien donde está el fallo. Tengo hechas unas expresiones regulares para validar unos ...
  #1 (permalink)  
Antiguo 17/10/2012, 02:26
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 11 meses
Puntos: 1
Expresiones regulares

Hola llevo dos dias atascado con esto y no logro entender muy bien donde está el fallo.

Tengo hechas unas expresiones regulares para validar unos formularios, en javascript van muy bien, pero cuando valido desde el lado del servidor (PHP) estas fallan, el caso es que fallan con la letra ñ, y lo hace en unas expresiones y en otras no, me explico.

Código PHP:
        public function claveZona($str)
    {
        return (!
preg_match("/^[a-zñ 0-9]+$/i"$str)) ? FALSE TRUE;
    }} 
con esta funión si escribo España, me devuelve TRUE, que la palabra es valida.

Pero esta otra expresión que es para otro campo

Código PHP:

        
public function clavePoza($str)
    {
        return (!
preg_match("/^[a-zñ]{2}\/[0-9]{1,4}$/i"$str)) ? FALSE TRUE
si escribo cñ/0001 falla :S y ya por más que probé no se donde esta el fallo :(


Gracias y un saludo.
  #2 (permalink)  
Antiguo 26/12/2012, 13:49
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 10 meses
Puntos: 2
De acuerdo Respuesta: Expresiones regulares

En vez de usar el modificar "i" tienes que usar el modificador "u" logrando de esta forma hacer los matches en modo UTF8

Código Expresion Regular:
Ver original
  1. '#^[\D]{2}\/[0-9]{1,4}$#u'

Yo ya lo probé y funciona, espero te sirva.

Saludos!
  #3 (permalink)  
Antiguo 26/12/2012, 13:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Expresiones regulares

Pero antes debes verificar si la cadena a recorrer está en utf-8 si no el modificar u no va a funcionar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 27/12/2012, 03:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Expresiones regulares

Hola, muchas gracias por la respuesta, yo lo habia solucionao con una respuesta que me dieron en otro lado y fue que en PHP el caracter 'ñ' lo tomaba como dos y en Javascript como uno. Pero posiblemente pueda tener algo q ver con el tema que dices de UTF-8 aunque bueno ya funciona :)

Gracias de nuevo :)

Etiquetas: expresiones, formulario, regulares
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 22:05.