Что не так с этим выражением валидатора электронной почты? - PullRequest
0 голосов
/ 27 августа 2018

Контактная форма на веб-сайте отклонила адрес электронной почты, которым я пользуюсь годами.Я предположил, что это потому, что мой TLD .Email, поэтому я указал реальный адрес в теле и поставил Wrong.Address@Nowhere.com в поле.Все еще утверждал недействительным.Сделано все в нижнем регистре.Все еще утверждал недействительным.Убрал период.Все еще отклонено.Изучил их исходный код, но мне кажется, что он должен был принять все, что я пробовал, кроме первого (в ДВУ которого пять символов).

<input id='Textbox-2'
       data-sf-role="text-field-input"
       type="email"
       name="TextFieldController_0"
       placeholder="Email"
       value=""
       pattern=\A[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}\z
       class="form-control" />

(я добавил разрывы строк, чтобы спасти вас от большого количества горизонтальной прокрутки).Почему шаблон не работает?Может ли это быть неспособность окружить его кавычками?

1 Ответ

0 голосов
/ 27 августа 2018

\A и \z - это якоря (соответственно начало и конец строки), которые не поддерживаются JS-регулярным выражением, где используются ^ и $.Однако регулярное выражение HTML5 pattern обрабатывается с помощью механизма HTML5, который оборачивает шаблон с ^(?: и )$, таким образом, привязывая шаблон по умолчанию.

Вы должны убедиться, что\A и \z удалены из шаблона:

pattern="[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...