Регулярное выражение сброса ветвей без захвата в NodeJS - PullRequest
0 голосов
/ 20 сентября 2018

https://regex101.com/r/UXnhTy/1

var date = /(?|(Sat)ur|(Sun))day/;

console.log(date.exec("Sunday"));

Это не с:

SyntaxError: Invalid regular expression: /(?|(Sat)ur|(Sun))day/: Invalid group

Существует ли версия NodeJS, которая поддерживает это?Или какая-то библиотека, которую

я тестировал с помощью nodejs v8.12.0

1 Ответ

0 голосов
/ 20 сентября 2018

Не совсем.Расширенной альтернативной библиотекой регулярных выражений для JavaScript является XRegExp , но она не имеет функции, к которой вы стремитесь - даже как аддон .
Более простая функция регулярных выражений, котораяXRegExp поддерживает именованные группы захвата , поэтому вы можете написать:

var days = XRegExp('(?:(?<d>Sat)ur|(?<d>Sun))day', 'gi');

Вы не можете использовать числа в качестве имен групп, но именованные группы должны соответствовать вашим потребностям - они допускают обратные ссылки(с использованием \k<d>), замена (${d}), захват (match.d) и все функции обычной пронумерованной группы.

Именованные захваченные группы изначально поддерживаются ES2018: ES2018 RegularОбновления выражений .
Согласно node.green , именованные группы захвата поддерживаются Node.js ≥10.3.0 или ≥8.6.0 с флагом --harmony..

...