Вам необходимо удалить экранирование от каждого не специального символа , потому что в FF (и Chrome) регулярное выражение HTML5 скомпилировано с модификатором u
, и оно накладывает большее ограничение на шаблон.Чтобы включить сопоставление 1 или более разрешенных символов, добавьте +
после класса символов:
pattern="[a-zA-Z0-9/.& -]+"
Обратите внимание, что все специальные символы в вашем шаблоне, кроме -
, не являются специальными внутри класса символов.Следовательно, только -
может быть экранировано, но обычно помещают его в начало / конец класса символов, чтобы избежать переэкранирования.
input:valid {
color: black;
}
input:invalid {
color: red;
}
<form name="form1">
<input pattern="[a-zA-Z0-9/.& -]+" title="Please enter the data in correct format." />
<input type="Submit"/>
</form>