匹配单词字符,包括国家特定字母,如öäü

时间:2014-05-11 07:50:03

标签: javascript regex

我正在编写JavaScript-Regexp,我需要匹配所有类型的单词。

SW应该是多语言的,因此应该支持öÜßêî ...

等特殊字符

是否有像\w这样的正则表达式匹配所有这些字母?

搜索所有可能的字母,并通过[\wöäü...]+插入它们的效率非常低。

使用像[^\s]+之类的东西也是不可能的,因为我必须确保在单词中没有像§$%,@ ......这样的符号。

2 个答案:

答案 0 :(得分:1)

然后否定那些你不想出现在字符串中的单词。这将是有效的,因为允许的字符数将超过不允许的数字字符。

像这样:

[^§$%,@]+ // will not allow these characters but will match others.

答案 1 :(得分:1)

Javascript不支持任何方式的unicode属性,您不能直接在表达式中包含“latin1 letter”并且必须使用范围。 Latin1-supplement block包含C0-FF中的字母,但D7F7处的两个数学符号除外,因此表达式为

/[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+/

请注意,这仅支持西欧字母。如果您想匹配任何unicode字母,除了手动枚举unicode database中的所有Lu/Ll/Lm范围之外,JS regex无法使用。