J'ai trouvé beaucoup de validation de courrier électronique Regex dans SO mais je n'en ai trouvé aucune qui accepterait une chaîne vide. Est-ce possible uniquement via Regex? Accepter une chaîne vide ou un e-mail uniquement? Je veux avoir ceci sur Regex uniquement.
128
^
, où vous recherchez effectivement un e-mail ou rien au milieu d'une chaîne. Pour cela,(email_regex)?
c'est mieux adapté.^$
ne fonctionne pas, mais^(?!.)
fonctionne: [^
début de chaîne,(?!)
anticipation négative,.
tout caractère - sans compter le saut de ligne]correspondant à une chaîne ou à un e-mail vide
correspondant à une chaîne vide ou à un e-mail, mais également à n'importe quelle quantité d'espaces blancs
en savoir plus sur le regex correspondant aux e-mails:
http://www.regular-expressions.info/email.html
la source
Les réponses ci-dessus fonctionnent ($ pour vide), mais j'ai juste essayé ceci et cela fonctionne aussi pour laisser vide comme ceci:
Même chose dans l'ordre inverse
la source
Ne faites pas correspondre un e-mail avec une expression régulière. C'est extrêmement moche, long et compliqué et votre parseur regex ne peut probablement pas le gérer de toute façon. Essayez de trouver une routine de bibliothèque pour les faire correspondre. Si vous ne souhaitez que pour résoudre le pratique problème de la correspondance d'une adresse e-mail (c'est-à-dire si vous voulez un code erroné qui fonctionne (généralement)), utilisez le lien regular-expressions.info soumis par quelqu'un d'autre.
Quant à la chaîne vide, elle
^$
est mentionnée par plusieurs personnes et fonctionnera très bien.la source
cela résoudra, il acceptera une chaîne vide ou précisera un identifiant de courrier électronique
la source
Je préfère
/^\s+$|^$/gi
faire correspondre les espaces vides et vides.la source
Si vous l'utilisez dans des rails - activerecord validation, vous pouvez définir
allow_blank: true
Comme:
la source