Javascript regExp西里尔模式

时间:2011-02-05 14:24:23

标签: javascript regex unicode

我知道这是一个愚蠢的问题,但我花了两天谷歌搜索没有任何结果。 regExp模式应该允许我的用户只键入西里尔字符和空格? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

你不能在Javascript中执行此操作,因为Javascript在其正则表达式中甚至不提供最基本的Level 1 Unicode support。您必须切换语言才能正确执行此操作。

您无法使用枚举块范围。这会混淆块和脚本,这是非常有缺陷的。有150个代码点具有\p{Script=Cyrillic}属性但缺少\p{Block=Cyrillic}属性。他们在不同的街区。观看:

$ unichars '\p{Script=Cyrillic}' '\P{Block=Cyrillic}' | wc -l
150

此外,西里尔字母块中还有一些非西里尔字母代码点。

你能做的最好的事情是将所有404个西里尔字母代码点枚举为一个字符类,这可能会非常大。

$ unichars '\p{Script=Cyrillic}'  | wc -l
404

如果您真的想要,可以使用the unichars scripts列出全部内容。你可能还想在那里抓住the uniprops script