如何匹配Unicode特殊字母字符而不匹配特殊字符

时间:2013-12-09 14:44:24

标签: javascript regex unicode

我在这里陷入困境。我正在尝试编写一个正则表达式模式,匹配东方语言和西方语言的所有字母字符。其中一个标准是没有数字可以匹配(所以José13)不匹配但(José)是,其他标准是特殊字符不匹配(即:!@#$%等)

我在chrome的控制台上玩过这个,我得到了:

"a".match('[a-zA-z]');

当我投入时成功回来:

"a".match('[\p{L}]');

我得到一个空响应,我不太明白为什么。根据{{​​3}} \ p {L}是任何字母的匹配。

编辑:\ p似乎在我的chrome控制台中不起作用,所以我会尝试不同的路线。我有一张来自Unifoundry的unicode图表。我将匹配正则表达式并尝试使字符范围无效。

非常感谢任何输入。

2 个答案:

答案 0 :(得分:1)

这适用于javascript控制台,但它似乎是一个黑客:

.match('^[^\u0000-\u0040\u005B-\u0060\u007B-\u00BF\u00D7\u00F7]*');

然而,它做了我需要做的事情。

在SO:Javascript + Unicode regexes

上引用这篇文章

答案 1 :(得分:0)

目前的Javascript实施不支持此类快捷方式,但您可以指定范围,例如:

/[\u4E00-\u9FFF]+/g.test("漢字")