Javascript Unicode正则表达式\p{L}在NodeJS中不起作用

Javascript Unicode正则表达式\p{L}在NodeJS中不起作用,javascript,node.js,regex,unicode,Javascript,Node.js,Regex,Unicode,我试图使下面的unicode正则表达式在nodejs中工作,但得到的只是一个无效的转义错误。我不知道该在这里逃逸什么,或者是否由于某种原因在节点中根本不起作用。这是我原来的正则表达式: /([\p{L}|\-]+)/ug 如果我像\\p那样退出\p,正则表达式将不再工作(仅输出p、L和-) 这在chrome中有效,所以它也应该在node中有效,对吗?谢谢你的帮助 var str=“thÛsÍs spå-rtÅ!”; console.log(str.match(/([\p{L}\-]+)/ug

我试图使下面的unicode正则表达式在nodejs中工作,但得到的只是一个无效的转义错误。我不知道该在这里逃逸什么,或者是否由于某种原因在节点中根本不起作用。这是我原来的正则表达式:

/([\p{L}|\-]+)/ug
如果我像
\\p
那样退出\p,正则表达式将不再工作(仅输出p、L和-)

这在chrome中有效,所以它也应该在node中有效,对吗?谢谢你的帮助

var str=“thÛsÍs spå-rtÅ!”;

console.log(str.match(/([\p{L}\-]+)/ug))
快速浏览节点更改日志,发现以下问题:

其中最值得注意的是:

RegExp Unicode属性转义处于第4阶段,将包含在ES2018中。它们从V8 6.4开始就没有标记,因此它们将在Node.js v10中取消标记。它们还可以在Node.js v6-v9中的--harmony_regexp_属性标志和Node.js v8-v9中的--harmony标志下使用

因此,从外观上看,如果您在节点v6-v9上,可以通过运行带有标志的
node
来启用此功能。例如,这在节点v8.11.3上适用:

node --harmony regex-test.js
(其中
regex test.js
包含示例代码)。在不带标志的情况下运行此命令会导致
无效转义
错误

如果您可以将节点版本更新为V10+,则不需要任何标志。

< P>如果您要使用“和谐标志”,请考虑此

正如节点文档中提到的,-harmony标志支持ES6的非稳定但很快就会稳定的特性

Node.js上--harmony标志的当前行为是仅启用阶段性功能。毕竟,它现在是--es_staging的同义词。如上所述,这些是尚未被视为稳定的完整功能。如果您想安全地运行,特别是在生产环境中,请考虑删除这个运行时标志,直到它在V8上默认运行,并因此在Node.js上运行。如果保持启用状态,则应准备进一步升级Node.js,以便在V8更改其语义以更接近标准时中断代码

这里是链接
.

天啊,非常感谢你!开发服务器仍然在v8.10.0上。与国旗配合很好。