2016-01-25 3 views
1

Очень простой вопрос ... как я могу проверить в 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 не работает.

+0

Возможно, например: [' '] (https://jsfiddle.net/u719637y/1/). BTW, вам не нужны привязки в атрибуте шаблона HTML5. –

+0

просто попробовал вашу команду, но не работал, возможно, из-за пространства? Также любая идея, как показать пользовательские сообщения об ошибках? О, просто понял «название», это так, спасибо :) –

+0

«Это не сработало», потому что вы не сказали, как это должно работать. Какой вход считается действительным? –

ответ

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]. Для соответствия литералу \( вы также можете использовать класс символов: [(] (тот же для ): [)]). Внутри класса персонажа эти ( и ) теряют свое «особое» значение группировки.

+1

это сработало! Я изменил ввод на ', и теперь он работает –

+1

идея класса персонажа еще лучше, чище и работает тоже –