Estoy haciendo un script de validación de correo electrónico realmente simple que básicamente solo verifica lo siguiente
Sé que hay muchas más verificaciones, pero miro estas reglas de expresiones regulares y mi mente deja de funcionar. Me imagino que si empiezo con algo pequeño como esto, podría envolver mi cerebro en reglas más complejas.
Actualmente usando algo de jquery hago lo siguiente:
var booking_email = $('input[name=booking_email]').val(); if(booking_email == '' || booking_email.indexOf('@') == -1 || booking_email.indexOf('.') == -1) { // perform my alert }Esto es suficiente para detener el 90 % de los correos electrónicos falsos hasta ahora... Me gustaría hacerlo un poco más efectivo porque actualmente mi regla permitirá correos electrónicos como '@dominio.com' o 'usuario@dominio'. porque solo comprueba que hay un punto y un símbolo @.
Gracias por cualquier consejo.
Lo que otros han sugerido debería funcionar bien, pero si quieres simplificar las cosas, prueba esto:
var booking_email = $('input[name=booking_email]').val(); if( /(.+)@(.+){2,}\.(.+){2,}/.test(booking_email) ){ // valid email } else { // invalid email }Incluso si decide optar por algo más robusto, debería ayudarlo a comprender cuán simples pueden ser las expresiones regulares a veces. :)
La validación menos codiciosa posible que puede hacer es con este RegExp /^\S+@\S+\.\S+$/
Solo garantizará que la dirección se ajuste a los requisitos más básicos que mencionó: un carácter antes de @ y algo antes y después del punto en la parte del dominio ( \S significa "cualquier cosa menos un espacio"). Validar más que eso probablemente sea incorrecto (siempre tiene la posibilidad de incluir en la lista negra un correo electrónico válido).
Úsalo así:
function maybeValidEmail (email) { return /^\S+@\S+\.\S+$/.test(email); }Tratar:
function valid_email(email) { return email.match(/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[az])\.)+[az]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i); }Esa es la mejor expresión regular de validación de correo electrónico disponible , según este artículo . Recomiendo usar esto, a menos que su objetivo sea algo realmente simple pero no totalmente compatible.