Validar correo electrónico con Regex en JavaScript

Habdul Hazeez 12 octubre 2023
  1. Verifique el correo electrónico entre TLD de dos y tres letras y no permita caracteres en correo electrónico y nombres de dominio en JavaScript
  2. Verifique el correo electrónico entre dos y seis nombres de TLD y no permita el inicio de sesión más Nombres de correo electrónico en JavaScript
  3. Verifique el correo electrónico y permita números y caracteres válidos en el correo electrónico y el nombre de dominio en JavaScript
  4. Verifique la dirección de correo electrónico con el formato RFC 5322 en JavaScript
  5. Conclusión
Validar correo electrónico con Regex en JavaScript

Este artículo le enseñará varias expresiones regulares que pueden validar diferentes tipos de direcciones de correo electrónico. Por lo tanto, puede modificar o seleccionar uno de los patrones que mejor se adapte a su caso de uso.

Verifique el correo electrónico entre TLD de dos y tres letras y no permita caracteres en correo electrónico y nombres de dominio en JavaScript

Puede escribir una expresión regular que permita direcciones de correo electrónico entre dos y tres TLD. Por ejemplo, .com y .io.

Esto también significa que el patrón no permitirá un correo electrónico con las siguientes características.

  1. Un TLD de más de tres caracteres TLD, por ejemplo, .mobi
  2. Múltiples TLD, p. (.gmail.sa)
  3. Dominio con números, por ejemplo, tech125.com
  4. El punto (.) o un guión (-) en el nombre del correo electrónico
  5. El guión en el nombre de dominio

En nuestro código de ejemplo a continuación, tenemos una expresión regular que devolverá “true” para direcciones de correo electrónico como abc@gmail.com, hello@hello.com y ab0c@gmail.com.

let pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('abc@gmail.com')

Producción :

true

Mientras tanto, el patrón devolverá false para la siguiente dirección de correo electrónico.

ab0c@my-domain.com

Verifique el correo electrónico entre dos y seis nombres de TLD y no permita el inicio de sesión más Nombres de correo electrónico en JavaScript

Un patrón de expresión regular puede permitir el signo de punto final (.) y no permitir el signo más (+) en una dirección de correo electrónico. Esto significa que las direcciones de correo electrónico con el signo más no pasarán la expresión regular.

Entonces, devolverán false, incluso si es válido. El patrón que definiremos en esta sección devolverá false para un correo electrónico con las siguientes características.

  1. Un correo electrónico con el signo más (+)
  2. Un TLD con más de seis caracteres, p. (".tecnología")

En el siguiente código, tenemos una nueva expresión regular. Mientras tanto, este patrón devuelve “true” para el último correo electrónico en la sección anterior.

let pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('ab0c@my-domain.com')

Producción :

true

Mientras tanto, las direcciones de correo electrónico que se enumeran a continuación no pasarán este patrón. Sin embargo, todos son válidos para algunos proveedores de correo electrónico.

ab+c@my-domain.com
mr+john@my-domain.com.ga

Verifique el correo electrónico y permita números y caracteres válidos en el correo electrónico y el nombre de dominio en JavaScript

Puede escribir un patrón de expresión regular y flexible que admita la mayoría de las direcciones de correo válidas que existen en la actualidad. Dicho correo electrónico tendrá las siguientes características.

  1. A algunos caracteres les gusta el punto e inician sesión en el correo electrónico y el nombre del TLD.
  2. El nuevo TLD como .technology y .business.

La desventaja de este patrón es que permitirá múltiples de estos caracteres. Como resultado, el usuario puede pasar una dirección de correo electrónico extremadamente larga que parece válida, pero no lo es.

let pattern =
    /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('johndoe@citadel-consulting.com');

Producción :

true

Sin embargo, la siguiente dirección de correo electrónico no válida pasará este patrón.

aaa++++++++++@gmail.technologyyyyyyyyyyyyyyyyyyyyyyyyyyy.com

Verifique la dirección de correo electrónico con el formato RFC 5322 en JavaScript

Puede escribir un patrón de expresión regular compatible con el formato RFC 5322. Sin embargo, dicha expresión regular tendrá una longitud larga.

Como resultado, puede ser incomprensible. Entonces, puede usar la versión abreviada con la clase RegExp en JavaScript.

En el siguiente código, hemos implementado un patrón de expresión regular que cumple con RFC 5322. Por lo tanto, devolverá “true” para las direcciones de correo electrónico más válidas.

let pattern = new RegExp(
    '([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|"\(\[\]!#-[^-~ \t]|(\\[\t -~]))+")@([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*])');

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('aa@gmail.com.sa');

Producción :

true

Conclusión

Este artículo discutió diferentes patrones de expresiones regulares que validan una dirección de correo electrónico. Sin embargo, todo está en el lado del cliente.

Le imploramos que también valide el correo electrónico en el lado del servidor para mayor seguridad.

Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn

Artículo relacionado - JavaScript Regex