Ошибка Firefox: Невозможно проверить входные данные, поскольку шаблон не является допустимым регулярным выражением: недопустимый сброс идентификатора в регулярном выражении
Я использую сопоставление с регулярным выражением для проверки формы HTML5. Последняя версия Firefox выдает мне ошибку. Я только начал видеть это в Firefox 46. Я не думаю, что это было проблемой в более ранних версиях Firefox.
Невозможно проверить
<input pattern='[\@\%]'>
потому что шаблон не является допустимым регулярным выражением: недопустимый escape-идентификатор в регулярном выражении
Вызванный этим очень простым контрольным примером:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<form>
<input pattern="[\@\%]">
</form>
</html>
Почему экранирование этих символов считается ошибкой? Я всегда избегал всего в моих регулярных выражениях, кроме цифр или букв. Мне никогда не приходилось жаловаться на этот тип экранированного персонажа, кроме этой версии Firefox.
Когда я выучил регулярные выражения, мне сказали, что все, что не является цифрой или буквой, может иметь особое значение. Даже если это не сейчас, это может произойти в будущей версии, так что лучше избегать их. Разве это не правда?
Есть ли список персонажей, которых я не должен избегать для Firefox?
1 ответ
Это связано со следующим изменением: ошибка 1227906 - HTML pattern
атрибут должен установить u
флаг для регулярных выражений
Как кто-то уже сказал, вам не нужно убегать от этих персонажей. Просто используйте:
<input pattern="[@%]">