匹配ASCII和Unicode字母的正则表达式

7

最近我惊讶地发现,JavaScript没有内置的Unicode正则表达式支持。

那么我该如何测试一个字符串是否只包含字母,无论是Unicode还是ASCII?

2个回答

10

你好。我下载了这个库,但是无法让它工作。我正在使用作者提供的示例进行测试,但是没有匹配结果。在运行unicodeWord.test("Русский");(在作者的网站上找到)时返回false。 - Thomas
@Thomas:对我来说它完美地工作:http://jsfiddle.net/timdown/GAKYt/。你用的是哪个浏览器? - Tim Down

3

最近我惊讶地发现,Javascript没有内置的unicode正则表达式支持。

这对我也是一个惊喜,因为

alert(/\u00B6/.test("¶"));

打印出 true。


好的。我的错。那么正确的正则表达式是什么,用于检查一个字符串是否只包含每个字符集中的字母?这可以做到吗? - Thomas
5
\uHHHH 符号是 JavaScript 的一种语言特性。Unicode 正则表达式支持包括 Unicode 属性 (\p{L})、块 (\p{InLatinExtendedA}) 和脚本 (\p{Cyrillic}) 等等。然而,JavaScript 正则表达式并没有这些功能;你必须使用 XRegExp Unicode 插件或者切换到其他语言才能实现。 - Alan Moore
对于那些可能没有理解达林的意思的人:他是在说(带有一点讽刺意味)JavaScript实际上确实(曾经)内置了对Unicode正则表达式的支持。 - LarsH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接