validate validar texto regular filter_validate_email expresion existe electronico dominio correo como php regex preg-match email-validation

validar - Validación de correo electrónico PHP



validar texto php (3)

A menos que desee utilizar expresiones regulares muy largas , se encontrará con direcciones de correo electrónico válidas que no están cubiertas (piense en Unicode). También las direcciones de correo electrónico falsas pasarán como válidas, entonces ¿cuál es el punto de validación si simplemente puede escribir [email protected] y salirse con la suya?

La mejor manera de validar las direcciones de correo electrónico es enviar un correo electrónico de confirmación con un enlace para hacer clic. Esto solo funcionará si la dirección de correo electrónico es válida: fácil y sin necesidad de usar expresiones regulares.

Esta pregunta ya tiene una respuesta aquí:

Para PHP, ¿cuál es la mejor validación de correo electrónico utilizando preg , NO ereg porque está en desuso / eliminado ?

No necesito verificar si el sitio web existe (no es como la máxima seguridad).

He encontrado muchas maneras con ereg pero (obviamente) no son una buena práctica.


Le sugiero que use el filtro FILTER_VALIDATE_EMAIL :

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { //valid }

También puedes usar su expresión regular directamente:

"/^(?!(?:(?://x22?//x5C[//x00-//x7E]//x22?)|(?://x22?[^//x5C//x22]//x22?)){255,})(?!(?:(?://x22?//x5C[//x00-//x7E]//x22?)|(?://x22?[^//x5C//x22]//x22?)){65,}@)(?:(?:[//x21//x23-//x27//x2A//x2B//x2D//x2F-//x39//x3D//x3F//x5E-//x7E]+)|(?://x22(?:[//x01-//x08//x0B//x0C//x0E-//x1F//x21//x23-//x5B//x5D-//x7F]|(?://x5C[//x00-//x7F]))*//x22))(?://.(?:(?:[//x21//x23-//x27//x2A//x2B//x2D//x2F-//x39//x3D//x3F//x5E-//x7E]+)|(?://x22(?:[//x01-//x08//x0B//x0C//x0E-//x1F//x21//x23-//x5B//x5D-//x7F]|(?://x5C[//x00-//x7F]))*//x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*//.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?://[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][://]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?://.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))//]))$/iD"

Pero en ese caso, si se encuentra un error en la expresión regular, tendrá que actualizar su programa en lugar de solo actualizar PHP.


function check_email($check) { $expression = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+/.([a-zA-Z]{2,4})$/"; if (preg_match($expression, $check)) { return true; } else { return false; } }

Llámalo en condición if () como el siguiente ejemplo:

if(!check_email($_REQUEST[''ContactEmail''])){ $register_error ="Enter the correct email address!<br />"; $reg_error=1; }