Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Anonymatrix en 9 Marzo 2017, 19:22 PM

Título: preg_match
Publicado por: Anonymatrix en 9 Marzo 2017, 19:22 PM
Hola, qué tal, alguien me ayuda porfa? grx =)

if(!preg_match("/[]+@[]+.[]/", $correo))
{
   echo "estructura incorrecta";
}
else
{
   echo "estructura correcta";
}


Dentro de [] quiero que se pueda escribir cualquier cosa, sin normas.

Ejemplo: ola[{(_-/*@sw5&.Dq1æ♀↓

El problema es que no me funciona.
Título: Re: preg_match
Publicado por: engel lex en 9 Marzo 2017, 21:06 PM
es porque le dices justo lo contrario, que no hay nada

para coincidir cualquier cosa usa . (punto) y luego + par que sea una cosa cualquier o más... ojo que tienes un punto y debes escaparlo

es decir

.+@.+\..+

recomiendo usar una regla más estricta
Título: Re: preg_match
Publicado por: Anonymatrix en 9 Marzo 2017, 21:30 PM
Gracias, tengo una duda con lo de escapar, si quisiese escapar por ejemplo:

\s (las 2 cosas por separado)

tendria que poner \\s

???

---

Otra pregunta:

En este caso para un correo normal.

if(!preg_match("/[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+/", $correo))
{
   echo "estructura incorrecta";
}
else
{
   echo "estructura correcta";
}


Probé a escribir aaa@aaa.a&a

Y me sale que es correcto cuando no deberia de serlo.
Título: Re: preg_match
Publicado por: engel lex en 9 Marzo 2017, 23:00 PM
tu le dijiste a php que buscara basado en

[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+

aaa@aaa.a&a

y si lo consiguó, consiguió -> aaa@aaa.a

tienes que hacerlo más estricto... ^ significa inicio de texto y $ fin

^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+$



te recomiendo esto
https://regex101.com/ (https://regex101.com/)
Título: Re: preg_match
Publicado por: Anonymatrix en 13 Marzo 2017, 00:39 AM
Gracias.