Я нашел много проверки электронной почты Regex в SO, но я не нашел никого, который примет пустую строку. Возможно ли это только через Regex? Принимать только пустую строку или электронную почту? Я хочу иметь это только в Regex.
Regex пустая строка или электронная почта
Ответ 1
Этот шаблон регулярного выражения будет соответствовать пустой строке:
^$
И это будет соответствовать (грубо) электронной почте или пустой строкой:
(^$|^.*@.*\..*$)
Ответ 2
сопоставление пустой строки или электронной почты
(^$|^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
сопоставление пустой строки или электронной почты, но также соответствующее любому пробелу
(^\s*$|^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
см. больше о самом регулярном выражении по электронной почте:
Ответ 3
Ответы выше работают ($ для пустых), но я просто попробовал это, и он также работает, чтобы просто оставить пустым так:
/\A(INTENSE_EMAIL_REGEX|)\z/i
То же самое в обратном порядке
/\A(|INTENSE_EMAIL_REGEX)\z/i
Ответ 4
Не соответствует электронной почте с регулярным выражением. Это крайне уродливое и длинное и сложное, и ваш парсер регулярных выражений, вероятно, не сможет справиться с этим. Попробуйте найти библиотечную процедуру для их сопоставления. Если вы хотите только решить практическую проблему с сопоставлением адреса электронной почты (то есть, если вы хотите, чтобы неправильный код работал (обычно)), используйте ссылку regular-expressions.info, которую кто-то еще отправил.
Что касается пустой строки, то ^$
упоминается несколькими людьми и будет работать нормально.
Ответ 5
Я предпочитаю /^\s+$|^$/gi
соответствовать пустым и пустым пространствам.
console.log(" ".match(/^\s+$|^$/gi));
console.log("".match(/^\s+$|^$/gi));
Ответ 6
это решит, оно примет пустую строку или точную идентификатор электронной почты
"^$|^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
Ответ 7
Если вы используете его в рельсах - ActiveReord валидации вы можете установить
allow_blank: true
Как:
validates :email, allow_blank: true, format: { with: EMAIL_REGEX }