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+$|^$/gi
om 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 }