Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
Restricción de la longitud mínima del correo electrónico SOLO para inicios de sesión de Gmail Regex

Por lo tanto, hay una tarea para hacer coincidir los correos electrónicos en una entrada contra ciertas condiciones. La mayoría de ellos se cumplen. Todos ellos, en realidad, excepto uno.

Por lo tanto, los correos electrónicos de los usuarios deben tener hasta 30 caracteres, pero no pueden tener menos de 6 solo para los usuarios de Gmail (la parte antes de la @). Otros tipos de correo electrónico pueden tener correos electrónicos aún más cortos.

¡Por favor, ayúdenme a encontrar una expresión regular correcta!

Mi actual es:

 ^((?!.*?\.\.)[a-zA-Z0-9\.]{1,30})\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Usando una coincidencia que no distingue entre mayúsculas y minúsculas, podría escribir el patrón como:

 ^(?!.*?\.\.)(?:[a-zA-Z0-9.]{1,30}@(?!gmail\.com$)(?:[a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}|[a-zA-Z0-9.]{6,30}@gmail\.com)$

El patrón coincide:

  • ^ Comienzo de cadena
  • (?!.*?\.\.) Afirmar no .. a la derecha
  • (?: Grupo de no captura para las 2 alternativas
    • [a-z0-9.]{1,30} Coincide con 1-30 caracteres especificados en la clase de caracteres
    • @(?!gmail\.com$) Coincidir con @ y afirmar no seguido por gmail.com
    • (?:[a-z0-9-]+\.)+[a-z0-9]{2,4} Coincide con 1+ repeticiones de la clase de carácter y . y haga coincidir 2-4 caracteres de la segunda clase de caracteres
    • | O
    • [a-zA-Z0-9.]{6,30}@gmail\.com
  • ) Cerrar grupo de no captura
  • $ Fin de la cadena

Demostración de expresiones regulares

 const regex = /^(?!.*?\.\.)(?:[a-zA-Z0-9.]{1,30}@(?!gmail\.com$)(?:[a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}|[a-zA-Z0-9.]{6,30}@gmail\.com)$/i; [ "testing@test.com", "t@gmail.com", "t@test.com", "testing@gmail.com" ].forEach(s => console.log(`${s} --> ${regex.test(s)}`));

Una forma un poco más corta de escribirlo podría ser afirmar no 1-5 caracteres antes de gmail.com:

 ^(?!.*?\.\.)(?![a-z0-9.]{1,5}@(?=gmail\.com$))[a-z0-9.]+@(?:[a-z0-9-]+\.)+[a-zA-Z0-9]{2,4}$

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda