我知道这是一个愚蠢的问题,但是我花了两天的时间进行谷歌搜索,但没有任何结果。
regExp模式应该是什么,以允许我的用户仅输入西里尔字符和空格?
提前致谢!
最佳答案
您无法在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。