web-dev-qa-db-fra.com

Regex chaîne vide ou email

J'ai trouvé beaucoup de validation de courrier électronique Regex dans SO mais je n'ai trouvé aucun qui accepterait une chaîne vide. Est-ce possible uniquement avec Regex? Accepter soit une chaîne vide ou un email uniquement? Je veux avoir ceci sur Regex seulement.

111
rob waminal

Ce motif de regex correspondra à une chaîne vide:

^$

Et cela correspondra (grossièrement) à un email ou à une chaîne vide:

(^$|^.*@.*\..*$)
259
Dave Child

correspondant chaîne vide ou email

(^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

correspondance de chaîne vide ou d'e-mail, mais aussi correspondance de n'importe quelle quantité d'espace

(^\s*$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

en savoir plus sur l'e-mail correspondant à regex lui-même:

http://www.regular-expressions.info/email.html

7
Stofke

Les réponses ci-dessus fonctionnent ($ pour vide), mais je viens d'essayer cela et cela fonctionne aussi pour laisser vide comme ceci:

/\A(INTENSE_EMAIL_REGEX|)\z/i

Même chose dans l'ordre inverse

/\A(|INTENSE_EMAIL_REGEX)\z/i
2
Chemist

Ne correspond pas à un email avec une regex. C'est extrêmement laid, long et compliqué et votre analyseur syntaxique de regex ne pourra probablement pas le gérer de toute façon. Essayez de trouver une routine de bibliothèque pour les faire correspondre. Si vous voulez seulement résoudre le problème pratique de la correspondance d'une adresse email (c'est-à-dire, si vous voulez un code erroné qui fonctionne (habituellement)), Utilisez le lien regular-expressions.info que quelqu'un d'autre a soumis.

En ce qui concerne la chaîne vide, ^$ est mentionné par plusieurs personnes et fonctionnera correctement.

0
Kevin

cela résoudra, il acceptera une chaîne vide ou un identifiant de courrier électronique exact

"^$|^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
0
Lijish Bhavan

Si vous l'utilisez dans Rails - pour activer la validation, vous pouvez définir allow_blank: true

Comme:

validates :email, allow_blank: true, format: { with: EMAIL_REGEX }

0
Salma Gomaa

Je préfère que /^\s+$|^$/gi corresponde aux espaces vides et vides.

console.log("  ".match(/^\s+$|^$/gi));
console.log("".match(/^\s+$|^$/gi));
0
ThomasReggi