веб-сайт MDN содержит примеры сопоставления шаблонов. с поддержкой юникода, например.
const sentence = 'A ticket to 大阪 costs ¥2000 ????.';
const regexpCurrencyOrPunctuation = /\p{Sc}|\p{P}/gu;
console.log(sentence.match(regexpCurrencyOrPunctuation));
Он отлично работает в stackoverflow как фрагмент.
Однако в javascript codeandbox код выдает ошибку:
/src/index.js: Неизвестное свойство: Sc
В Next.js
codeandbox также выдает ту же ошибку.
С другой стороны, на веб-сайте regex101 шаблон правильно сопоставляется с предложением, с ароматом ECMAScript и с флагом gu.
Кроме того, в моем реальном проекте Next.js
Typescript
шаблон /\P{L}/gu
работал нормально до вчерашнего дня, когда я обновил все зависимости до последних версий. Теперь он выдает аналогичную ошибку с режимом strict
, установленным в true в tsconfig.json. Если для режима strict
установлено значение false, он по-прежнему работает нормально.
Почему возникает эта ошибка и как использовать шаблон регулярного выражения /\p{Sc}|\p{P}/gu
или /\P{L}/gu
в коде?