Я пытаюсь проверить код RFC (мексиканский налоговый идентификатор) в форме с помощью JS и JQuery. Мне требуется только проверить, возвращает ли следующее совпадение регулярных выражений null
:
function validateRFC(rfc) {
const rgxFisica = "^(([A-ZÑ&]{4})([0-9]{2})([0][13578]|[1][02])(([0][1-9]|[12][\\d])|[3][01])([A-Z0-9]{3}))|" +
"(([A-ZÑ&]{4})([0-9]{2})([0][13456789]|[1][012])(([0][1-9]|[12][\\d])|[3][0])([A-Z0-9]{3}))|" +
"(([A-ZÑ&]{4})([02468][048]|[13579][26])[0][2]([0][1-9]|[12][\\d])([A-Z0-9]{3}))|" +
"(([A-ZÑ&]{4})([0-9]{2})[0][2]([0][1-9]|[1][0-9]|[2][0-8])([A-Z0-9]{3}))$";
return rfc.match(rgxFisica) != null
}
const foo = validateRFC("XXXX901212UDX");
console.log(foo);
Шаблон в основном XXXXYYMMDDYYY
, где X
должно быть буквой, YMD
- это значения даты, а Y
- любой буквенно-цифровой символ.
Я провел небольшой юнит-тест на codepen с моим реальным идентификатором, и он работает. Однако при тестировании в моей тестовой среде он всегда возвращает ноль. Вот скриншот. В случае, если это имеет значение, я рендую всю страницу с помощью Flask в Python 3.7, а проверка находится внутри document.ready
Возможно ли, что мой Javascript интерпретируетрегулярные выражения по-разному?
РЕДАКТИРОВАТЬ:
Кажется, встроенный фрагмент также возвращает true
. Я использую VS2019 16.3.5, Python 16.3.19252.1 в 64-битной среде Python 3.7.