我正在编写JavaScript-Regexp,我需要匹配所有类型的单词。
SW应该是多语言的,因此应该支持öÜßêî
...
是否有像\w
这样的正则表达式匹配所有这些字母?
搜索所有可能的字母,并通过[\wöäü...]+
插入它们的效率非常低。
使用像[^\s]+
之类的东西也是不可能的,因为我必须确保在单词中没有像§$%,@
......这样的符号。
答案 0 :(得分:1)
然后否定那些你不想出现在字符串中的单词。这将是有效的,因为允许的字符数将超过不允许的数字字符。
像这样:
[^§$%,@]+ // will not allow these characters but will match others.
答案 1 :(得分:1)
Javascript不支持任何方式的unicode属性,您不能直接在表达式中包含“latin1 letter”并且必须使用范围。 Latin1-supplement block包含C0-FF
中的字母,但D7
和F7
处的两个数学符号除外,因此表达式为
/[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+/
请注意,这仅支持西欧字母。如果您想匹配任何unicode字母,除了手动枚举unicode database中的所有Lu/Ll/Lm
范围之外,JS regex无法使用。