Foros del Web » Programando para Internet » PHP »

expliquenme por favor esta validacion con eregi?

Estas en el tema de expliquenme por favor esta validacion con eregi? en el foro de PHP en Foros del Web. holas alguien me podria explicar sobre esto " ( eregi ( "^ [ A-Z0-9._%- ] [email protected] [ A-Z0-9._%- ] +\. [ A-Z ]{ 2,6 }$ ...
  #1 (permalink)  
Antiguo 27/04/2005, 18:14
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 12 años, 9 meses
Puntos: 4
Pregunta expliquenme por favor esta validacion con eregi?

holas

alguien me podria explicar sobre esto "(eregi("^[A-Z0-9._%-][email protected][A-Z0-9._%-]+\.[A-Z]{2,6}$", $email))".

Lo poco pque entiendo de esto es que es para validar, pero lo que qiuiesiera saber es com ofuncionas la primera parte de la funcion eregi
  #2 (permalink)  
Antiguo 27/04/2005, 19:58
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 12 años, 9 meses
Puntos: 4
hice esto ereg("[a-zA-Z]", $dato) y me acepta numero por que ????????
  #3 (permalink)  
Antiguo 28/04/2005, 09:35
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 12 años, 9 meses
Puntos: 4
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?

Alguien sabe a que se debe esto. O esta forma de validación no corresponde a lo que estoy buscando. En caso fuese asi alguien me podria dar algún alcance sobre validaciones para nombres todo eso, les estaría muy agradesido
  #4 (permalink)  
Antiguo 28/04/2005, 09:57
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
http://ar2.php.net/manual/es/function.ereg.php (eregi funciona igual, pero sin diferenciar mayusculas y minusculas)

Devuelve un valor verdadero si se encontró alguna coincidencia, o falso in no se encontraron coincidencias u ocurrió algún error.
  #5 (permalink)  
Antiguo 28/04/2005, 10:23
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 12 años, 9 meses
Puntos: 4
Hola Seppo a que te refieres con alguna coincidencia?

Aproposito del ultimo ejemplo que puse que esta mal, o esque ha eso te refieres con alguna conicidencia?.
  #6 (permalink)  
Antiguo 28/04/2005, 11:21
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 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
  #7 (permalink)  
Antiguo 28/04/2005, 12:20
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 12 años, 9 meses
Puntos: 4
Gracias por sus acertadas respuestas me esta sirviendo de mucho
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 03:43.