Проверка номера телефона Html5 с круглыми скобками

Очень простой вопрос... как мне проверить в html5 такой шаблон...

(562) 810-5566 или (714) 433-4434

Обратите внимание, что он будет содержать скобки и пробел.

Мой текущий контроль ввода выглядит следующим образом.

<input type="tel" data-tel-msg="Invalid Phone Number!" class="k-textbox" pattern="^\d{3}-\d{3}-\d{4}$" required />

Я знаю, что текущий шаблон соответствует 3334445555, но это не то, что я ищу, когда я попытался добавить круглые скобки, консоль javascript просто выдавала неверный синтаксис регулярного выражения. Нужна помощь по синтаксису здесь.

Также в качестве бонуса, если вы знаете, как заставить его отображать пользовательское сообщение об ошибке, которое также поможет. В настоящее время мой data-tel-msg не работает.

1 ответ

Решение

Вы можете использовать следующий код:

input:valid {
  color: green;
}
input:invalid {
  color: red;
}
<form name="form1">
 <input value="(555) 324-5643" type="tel" title="Invalid Phone Number!" class="k-textbox" pattern="[(][0-9]{3}[)] [0-9]{3}-[0-9]{4}" required />
 <input type="Submit"/> 
</form>

Регулярное выражение \(\d{3}\)\s\d{3}-\d{4} соответствует строки в (###) ###-#### формат, поскольку шаблон HTML5 по умолчанию привязан (к началу и концу строки).

title Атрибут позволяет отображать текст ошибки.

Если обратная косая черта в вашей среде потеряна, просто удвойте их или замените \d с [0-9], Чтобы соответствовать буквальному \( Вы также можете использовать класс символов: [(] (то же самое для ): [)]). Внутри класса персонажа эти ( а также ) теряют свое "особое" групповое значение.

Другие вопросы по тегам