Я видел в основном примеры без символов ^ (circumflex) и $ (валюта или доллар), чтобы отметить начало и конец совпадающей строки. Однако я не нашел ничего по этому поводу в спецификации html5. Являются ли они неявными в шаблоне? Спецификация html5 утверждает, что они являются неявными.
The compiled pattern regular expression, when matched against a string, must have its start anchored to the start of the string and its end anchored to the end of the string. This implies that the regular expression language used for this attribute is the same as that used in JavaScript, except that the pattern attribute is matched against the entire value, not just any subset (somewhat as if it implied a ^(?: at the start of the pattern and a )$ at the end).
При вводе type="text" шаблон отлично работает в любом формате, однако при вводе type="tel" мне пришлось удалить символы, чтобы регулярное выражение работало должным образом. Я тестировал как в Opera, так и в Firefox.
Это баг браузера? Должен ли я сообщить об ошибке в bugzilla и т. д.?
Редактировать: кажется, я наткнулся на странную ошибку, потому что я не могу создать сокращенный тестовый пример. Простой ввод на странице не показывает поведение, указанное выше. Однако остается вопрос. Должен ли я или не должен использовать проклятые якоря ^ и $?
tel
: Разрывы строк автоматически удаляются из входного значения, но никакой другой синтаксис не применяется, поскольку телефонные номера в разных странах сильно различаются. Вы можете использовать такие атрибуты, как шаблон и максимальная длина, чтобы ограничить значения, вводимые в элементе управления.. Он не упоминает ничего конкретного о типеtel
в описании атрибутаpattern
. - person The Nail   schedule 04.02.2012tel
. Не могли бы вы привести полный пример, включая код, что вы ожидали и что получили вместо этого? - person The Nail   schedule 04.02.2012input
, к которому он относится? И, пожалуйста, предоставьте ссылку, после чего вы ссылаетесь на спецификацию (надеюсь, она взята с W3.org) - person The Nail   schedule 04.02.2012^
и$
. Это означает, что вам не нужно помещать их туда явно. - person The Nail   schedule 04.02.2012