Ошибка 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="[@%]">
Другие вопросы по тегам