rx2*_*347 2 javascript regex unicode node.js
我试图使以下 unicode 正则表达式在 nodejs 中工作,但我得到的只是一个无效的转义错误。我不知道,在这里逃避什么,或者如果出于某种原因这在 node.js 中根本不起作用。这是我原来的正则表达式:
/([\p{L}|\-]+)/ug
Run Code Online (Sandbox Code Playgroud)
如果我像 \p 这样转义 \p \\p,则正则表达式不再起作用(仅输出 p、L 和 -)
这适用于 chrome,所以它也应该以某种方式在 node 中工作,对吧?谢谢你的帮助。
/([\p{L}|\-]+)/ug
Run Code Online (Sandbox Code Playgroud)
快速浏览一下 nodejs 更新日志,发现了这个 PR:
https://github.com/nodejs/node/pull/19052
其中最值得注意的是:
RegExp Unicode 属性转义处于第 4 阶段,将包含在 ES2018 中。它们从 V8 6.4 开始可用,没有标记,因此它们将在 Node.js v10 中未标记。它们也可以在 Node.js v6-v9 中的 --harmony_regexp_property 标志下和 Node.js v8-v9 中的 --harmony 标志下使用。
因此,从外观上看,如果您在节点 v6-v9 上,则可以通过node使用标志运行来启用此功能。例如,这在节点 v8.11.3 上对我有用:
node --harmony regex-test.js
Run Code Online (Sandbox Code Playgroud)
(其中regex-test.js包含您的示例代码)。在没有标志的情况下运行它会导致您的Invalid escape错误。
如果您可以将节点版本更新到 v10+,则不需要任何标志。
| 归档时间: |
|
| 查看次数: |
830 次 |
| 最近记录: |