Firefox дает SyntaxError: недопустимая группа регулярных выражений - PullRequest
1 голос
/ 20 апреля 2019

У меня мало регулярных выражений, используемых для проверки формы, и я заметил, что мой проект недоступен через Firefox, поскольку он ничего не показывает! но выдают ошибку в консоли, SyntaxError: invalid regexp group

nicRegex проверяет национальное удостоверение личности в моей стране. Формат должен быть 937962723V или 937962723X или любое 11-значное число в соответствии с текущим форматом.

phoneRegex - проверять номера телефонов с кодом моей страны. 94121212121 или 0762323232

const nicRegex = /^(?:19|20)?\d{2}(?:[01235678]\d\d(?<!(?:000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)))\d{4}(?:[vVxX])$/;

1 Ответ

0 голосов
/ 21 апреля 2019

Отрицательный внешний вид (в настоящее время не поддерживается в Firefox) используется здесь для ограничения трех предыдущих цифр.Это ограничение может быть выполнено одинаково хорошо с отрицательным прогнозом, просто его нужно поместить перед 3-значным шаблоном:

(?:[0-35-8]\d\d(?<!(?:000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)))

должно выглядеть как

(?!000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)[0-35-8]\d\d

Обратите внимание, что группы без захвата здесь избыточны, я их удалил, и [01235678] = [0-35-8].

Конечное регулярное выражение выглядит как

/^(?:19|20)?\d{2}(?!000|500|36[7-9]|3[7-9]\d|86[7-9]|8[7-9]\d)[0-35-8]\d\d\d{4}[vVxX]$/

См. regex demo и Regulex graph :

enter image description here

...