Javascript Js正则表达式不识别重音字母(utf-8)

Javascript Js正则表达式不识别重音字母(utf-8),javascript,node.js,regex,unicode,Javascript,Node.js,Regex,Unicode,Windows 10 64位上的Node.js 10.8.0 需要识别包含非Alpabee字符的字符串: let a = "train" /\W/u.test(a) // false a = "non-good" /\W/u.test(a) // true 到目前为止还不错。但如果字符串包含重音字母,则此操作无效: a = "niño" /\W/u.test(a) // true!? 注意:我使用“u”修饰符使其与Unicode一起工作 Bug还是特性 显然,我可以将测试编写为: /[^a-

Windows 10 64位上的Node.js 10.8.0 需要识别包含非Alpabee字符的字符串:

let a = "train"
/\W/u.test(a) // false
a = "non-good"
/\W/u.test(a) // true
到目前为止还不错。但如果字符串包含重音字母,则此操作无效:

a = "niño"
/\W/u.test(a) // true!?
注意:我使用“u”修饰符使其与Unicode一起工作

Bug还是特性

显然,我可以将测试编写为:

/[^a-zA-Zñ]/u.test(a)
添加所有重音字符,但似乎不是正确的方法。
有什么建议吗?谢谢

显然,功能。

根据MDN:

\W

匹配任何非基本字符中的单词字符 拉丁字母表。相当于
[^A-Za-z0-9.]

()


我找不到任何声称
u
标志应该改变这种行为的来源。

可能会有所帮助。我没有使用RE来匹配重音字符,但这似乎有很多关于它的好信息。谢谢你的指针!似乎
/\P{L}/u.test(a)
正是我所需要的。