Я нашел много проверок электронной почты Regex в SO, но я не нашел ни одного, который принимает пустую строку. Возможно ли это только через Regex? Принимать только пустую строку или только электронную почту? Я хочу, чтобы это было только на Regex.
128
^
, когда фактически вы ищете электронное письмо или ничего в середине строки. Для этого(email_regex)?
подходит лучше.^$
это не работает, но^(?!.)
работает: [^
начало строки,(?!)
отрицательный просмотр вперед,.
любой символ - не включая перевод строки]соответствующая пустая строка или адрес электронной почты
соответствует пустой строке или электронной почте, но также соответствует любому количеству пробелов
см. подробнее о самом регулярном выражении, соответствующем электронной почте:
http://www.regular-expressions.info/email.html
источник
Приведенные выше ответы работают ($ для пустого), но я просто попробовал это, и он также работает, чтобы просто оставить пустым, например:
То же в обратном порядке
источник
Не сопоставляйте электронное письмо с регулярным выражением. Это чрезвычайно уродливо, долго и сложно, и ваш парсер регулярных выражений, вероятно, все равно не справится с этим. Попробуйте найти библиотечную процедуру для их сопоставления. Если вы хотите решить только практическую проблему сопоставления адреса электронной почты (то есть, если вам нужен неправильный код, который (обычно) работает), используйте ссылку regular-expressions.info, отправленную кем-то другим.
Что касается пустой строки,
^$
она упоминается несколькими людьми и будет работать нормально.источник
это решит, он примет пустую строку или точный идентификатор электронной почты
источник
Я предпочитаю
/^\s+$|^$/gi
сопоставлять пустые и пустые места.источник
Если вы используете его внутри рельсов - активную проверку записи вы можете установить
allow_blank: true
Так как:
источник