Regex lege tekenreeks of e-mail

Ik heb veel Regex-e-mailvalidatie gevonden in SO, maar ik heb er geen gevonden die een lege tekenreeks accepteert. Is dit alleen mogelijk via Regex? Accepteert u een lege tekenreeks of alleen e-mail? Ik wil dit alleen op Regex hebben.


Antwoord 1, autoriteit 100%

Dit regex-patroon komt overeen met een lege tekenreeks:

^$

En dit komt (grofweg) overeen met een e-mail of een lege string:

(^$|^.*@.*\..*$)

Antwoord 2, autoriteit 2%

overeenkomstige lege tekenreeks of e-mail

(^$|^[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)$)

overeenkomen met lege tekenreeks of e-mail, maar ook overeenkomen met elke hoeveelheid witruimte

(^\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)$)

meer informatie over de e-mail die overeenkomt met de regex zelf:

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


Antwoord 3

De bovenstaande antwoorden werken ($ voor leeg), maar ik heb dit net geprobeerd en het werkt ook om gewoon zo leeg te laten:

/\A(INTENSE_EMAIL_REGEX|)\z/i

Hetzelfde in omgekeerde volgorde

/\A(|INTENSE_EMAIL_REGEX)\z/i

Antwoord 4

dit lost het op, het accepteert een lege string of een exacte e-mail-ID

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

5

Ik geef de voorkeur /^\s+$|^$/giom lege en lege spaties te matchen.

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

6

Als u het gebruikt binnen rails – ActiveRecord-validatie die u kunt instellen
allow_blank: true

als:

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

Other episodes