Комментарии 6
В Node.js 6.0.0-rc.2, вернее в V8 этой сборки, вкрался чудной баг: Unicode character properties работают даже без положенного флага.
/\p{L}/u
работает, но /[\p{L}]/u
ругается Invalid escape
. Как не извращался — не срабатывает. Хотел было обойти за счёт (?:\p{L}|
, но как оказалось, в браузере это срабатывает, а вот nodeJS 6
на \pL
всё ещё ругается :( При том, что re от XRegExp-а оно тоже перестало воспринимать, ругаясь всё тем же Invalid escape
. Такие вот дела :)
На счёт nodeJS ошибся, похоже, что просто переименовали ключ в --harmony_regexp_property
.
Вы можете отследить по сообщениям следящего бага, что поддержка свойств в составе классов символов добавлена совсем недавно. В новенькую шестую версию Node.js она не успела ещё попасть (туда только начальный этап реализации угодил, общие категории). Если хотите тестировать всё реализованное на текущий момент, нужно ставить Chrome Canary и запускать с флагом. Или можно поставить NW.js, они либеральнее относятся к версии V8, в их последней бета-версии уже есть V8 с поддержкой свойств в классах символов.
Unicode property escapes in JavaScript regular expressions by Mathias Bynens — краткое описание будущей спецификации с примерами и полезными ссылками.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Unicode character properties в регулярных выражениях V8