Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/04/2005, 10:21
fran86
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Cita:
hola de nuevo no hay alguien de buen corazon que me pueda sacar de este apuro, bueno lo que necesito es hacer validaciones de los datos que ingreso como nombres, email, telefono y viendo el manual de php descubri que podria hacerlo con las famosas expresiones regulares, ahora bien he estado probando con lo que encontre en ese manual y nada no resulta, por ejemplo puse " eregi("[a-z]",$dato) " y nada si le asigno a $dato "45435" devuelve falso, cosa es correcto, si le asigno "gerson" tambien esta bien pero el problema es cuando le asigno "234gerson" ó "gerson3443" lo acepta como correcto cosa de no deveria ser no?
Hola
Bueno, en realidad si es correcto, porque ll patron que mencionas "[a-z]" va a cazar una cadena que tenga "una letra comprendida entre la a y la z". Entonces si $dato = "88899i547"; te devuelve true, ya que tiene una "i" metida por ahi.....
Mira estos patrones:
Código:
"^[a-z]+$"
^ te dice que la cadena es coincidente si empieza
[a-z] con una letra
+ y si agregas este cuantidicador dices "con una o mas"
$ y es el fin de la cadena

Código:
"^[a-z]{4}$"
Aqui en vez de usar el +, dices que tiene exactamentes 4 letras

Código:
"^[a-z]{5,9}$"
y aca entre 5 y 9 letras...


Si tienes tiempo de sentarte a leer un lugar de referencia es
http://ar2.php.net/manual/en/referen...ern.syntax.php
que especifica los patrones para el ER compatibles con perl.... es decir, que usas con preg_match() y no con ereg()... pero mas o menos son parecidas...


Ej:
Código PHP:
$dato "aaa";
echo 
preg_match("/^[a-z]{5,9}$/"$dato); // imprime 0 porque son menos de 5 letras
// esas barras al inicio y al final del patron son "delimitadores" propios de las 
ER compatibles comn PERL 
Espero que te aclare algo.

Saludos