Ale*_*arz 2 javascript regex unicode
如何编写与所有有效的西班牙语和阿拉伯语单词匹配的正则表达式.
在英语中,我知道,a-zA-z用希伯来文,它是?-?用俄语写的?-??-???.
我用Javascript.
sle*_*han 16
a-zA-Z英语单词的范围简直无比,天真无邪.它遗漏了各种带有重音符号和其他特殊标记的字母,这些字母用在借词等中.例如,它与我的第一句话中的"天真"一词不符.请改用\p{Latin}脚本.
?-?希伯来语的范围也是错误的.它遗漏了希伯来语的表现形式,cantillation标记,意第绪语有向图等等.请改用\p{Hebrew}脚本.
?-??-???俄罗斯的范围再次不完整和错误.请改用\p{Cyrillic}脚本.
西班牙字母表使用与英语相同的26个字母,加上ñÑ.但同样,不要将这些硬编码到一个范围内.许多西班牙语单词使用重音元音.使用该\p{Latin}脚本匹配西班牙语单词.正则表达不会帮助您区分西班牙语和英语.
对于阿拉伯语,请使用该\p{Arabic}脚本.
你说你使用的是JavaScript.不幸的是,JavaScript几乎不支持Unicode内置.在JavaScript中,您需要使用XRegExp库及其Unicode插件.这将允许您在正则表达式中使用我在上面提到的所有Unicode脚本.
始终支持Unicode脚本而不是Unicode块.块与特定脚本中的代码点匹配不佳.块通常会遗漏许多不完整范围之外的重要代码点,并包含许多未分配任何字符的代码点.脚本包括所有相关的代码点,而不是更多.