Foros del Web » Programando para Internet » PHP »

Expresiones regulare (duda simple)

Estas en el tema de Expresiones regulare (duda simple) en el foro de PHP en Foros del Web. Amigos: debo estar loco porque creo que esta expresion NO deberia aceptar los dos puntos (:), pero si lo hace. Por que ?? Código PHP: ...
  #1 (permalink)  
Antiguo 18/01/2008, 14:24
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Pregunta Expresiones regulare (duda simple)

Amigos: debo estar loco porque creo que esta expresion NO deberia aceptar los dos puntos (:), pero si lo hace. Por que ??

Código PHP:
<?php
$cadena
=":error500.net";
$expresion '/[a-z0-9-_.]{3,}/i'
if (
preg_match($expresion$cadena)) echo 'verificado';
?>


PD: Aclaro que la idea es no dejar pasar caracteres extraños y solo aceptar letras sin acentuar, numeros, puntos y guiones
__________________
Salu2!
  #2 (permalink)  
Antiguo 18/01/2008, 14:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Desacuerdo Re: Expresiones regulare (duda simple)

Otro problema que me sorprende se ve aca:

Código PHP:
<?php
$cadena
="fffffffffffffffffffffffffffffffffffffff";
$expresion '/[a-z0-9-_.]{3,10}/i'
if (
preg_match($expresion$cadena)) echo 'verificado';
?>
Pueden ver que exige que haya mas de 3 caracteres pero NO respeta el maximo de 10 !! por que puede ser ???
__________________
Salu2!
  #3 (permalink)  
Antiguo 18/01/2008, 16:21
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: Expresiones regulare (duda simple)

No se si vayas a almacenar el valor de la comparación pero creo que te vendria mejor usar ereg()


Código PHP:
<?php
$cad 
"error.500.net";
if(
ereg('^[a-z0-9_.-]{3,}',$cad))
    {
    echo 
"Si pasa";    
    }
?>
Código PHP:
<?php
$cad 
"error.500.netfasfasfasfasfsafa";
if(
ereg('^[a-z0-9_.-]{3,10}$',$cad))
    {
    echo 
"Si pasa";    
    }
?>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 18/01/2008, 17:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Re: Expresiones regulare (duda simple)

Código PHP:
<?php
$cad 
"error.500.netfasfasfasfasfsafa";
if(
ereg('^[a-z0-9_.-]{3,10}$',$cad))
    {
    echo 
"Si pasa";    
    }
?>
amigo _ssx: a pesar que la cadena "" es mucho mas larga que 10 caracteres tu codigo imprime "Si pasa" y yo me pregunto "que esta mal ?"

Algun idea ? Ahh.. ademas.. sigue admitiendo los dos puntos (:) a pesar de no estar contemplados por la expresion
__________________
Salu2!
  #5 (permalink)  
Antiguo 18/01/2008, 17:42
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: Expresiones regulare (duda simple)

Hola Friend, pues mira lo volvi a testear..

Código PHP:
<?php
$cad 
"12345678g94";
if(
ereg('^[a-z0-9_.-]{3,10}$',$cad))
    {
    echo 
"Si pasa";    
    }else
             {
                echo 
"No Pasa";
                }
?>
Y no pasa :D , tampoco me acepta los dos puntos.. ojala viniera algun expert en expresiones regulares.. :D pero pues segun la logica esta ahi.. la cadena debe de iniciar solo con el rango entre corchetes y con una longitud de 3 a 10 y finalizar..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 19/01/2008, 00:46
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Re: Expresiones regulare (duda simple)

_ssx: gracias! ya funciona... no se que estaba copiando
__________________
Salu2!
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 00:13.