Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

699
Visualizações
yup validación de un carácter seguido de otro carácter usando expresión regular

Necesito algunas reglas de validación de correo electrónico para mostrar algunos mensajes personalizados.

  1. inválido si no obtenemos @ seguido de un .
  • abc@gmailcom (inválido)
  • def.com (inválido)

Lo que he probado hasta ahora: yup.string().email().matches(/^(?!\@*.)/)


  1. inválido si obtenemos @ seguido de ,
  • abc@gmail,com (inválido)

Lo que he probado hasta ahora: yup.string().email().matches(/^(?!\@*,)/)

Ninguna de las soluciones que probé funcionó.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Una forma es escribir diferentes patrones para generar diferentes mensajes personalizados.

Por ejemplo, este patrón coincide con una coma después de @

 ^[^@\s]+@[^@\s,]*,

Explicación

  • ^ Comienzo de cadena
  • [^@\s]+ Coincidencia de 1+ caracteres que no sean un carácter de espacio en blanco o @
  • @ Partido literalmente
  • [^@\s,]*, haga coincidir los caracteres opcionales que no sean un carácter de espacio en blanco o @, luego haga coincidir la coma

Este patrón coincide con un formato de correo electrónico. También puede coincidir con una coma, pero ya se está comprobando ese patrón específico.

 ^[^\s@]+@[^\s@]+\.[^\s@]+$ 

 const getMessage = s => { if (s.startsWith("@")) { return `${s} -->Invalid, string starts with @`; } if (/^[^@\s]+$/.test(s)) { return `${s} --> Invalid, string does not contain @`; } if (/^[^@\s]+@[^@\s,]*,/.test(s)) { return `${s} --> Invalid, string has , after @`; } if (/^[^@\s]+@[^@\s.]+$/.test(s)) { return `${s} --> Invalid, string has no . after @`; } if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s)) { return `${s} --> Valid format`; } return `${s} --> Invalid format`; }; [ "@test.com", "abc@gmailcom", "def.com", "abc@gmail,com", "test@test.com", "test@@" ].forEach(s => console.log(getMessage(s)));

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes usar

 yup.string().email().matches(/@[^.]*\./)

y

 yup.string().email().matches(/^(?!.*@[^,]*,)/)

Estas dos expresiones regulares coinciden

  • @[^.]*\. - un carácter @ , luego cero o más caracteres que no sean . y luego un . char (es decir, debe haber un @ en algún lugar y luego debe haber un . a la derecha del @ char encontrado)
  • ^(?!.*@[^,]*,) - comienzo de la cadena ( ^ ), y luego una búsqueda anticipada negativa ( (?!...) ) que falla la coincidencia si, inmediatamente a la derecha de la ubicación actual , hay cero o más caracteres que no sean caracteres de salto de línea tantos como sea posible ( .* ), luego una @ , luego cero o más caracteres sin coma ( [^,]* ) y luego una coma. Entonces, básicamente, haga coincidir una cadena que no contenga una @ seguida de una coma.
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda