javascript - 正则表达式西类牙语和阿拉伯语单词

标签 javascript regex unicode

如何编写匹配所有有效西类牙语和阿拉伯语单词的正则表达式。
我知道的英文是a-zA-z , 在希伯来语中是 א-ת , 俄语 А-Яа-яёЁ .
我使用Javascript。

最佳答案

范围a-zA-Z因为英语单词的简单和天真令人无法接受。它遗漏了各种带有重音符号的字母以及在借词等中使用的其他特殊标记。例如,它不会匹配我第一句话中的“naïve”这个词。使用 \p{Latin}脚本,而不是。

范围א-ת因为希伯来文也是错误的。它省略了希伯来语表示形式、cantilation 标记、意第绪语有向图等。使用 \p{Hebrew}脚本,而不是。

范围А-Яа-яёЁ因为俄语又是不完整和错误的。使用 \p{Cyrillic}脚本,而不是。

西类牙语字母表使用与英语相同的 26 个字母,外加 ñÑ。但同样,不要将这些硬编码到一个范围内。许多西类牙语单词使用重音元音。使用 \p{Latin}脚本来匹配西类牙语单词。正则表达式不会帮助您区分西类牙语和英语。

对于阿拉伯语,请使用 \p{Arabic}脚本。

JavaScript、正则表达式和 Unicode

你说你在使用 JavaScript。不幸的是,JavaScript 对 Unicode 内置支持很少。在 JavaScript 中,您需要使用 XRegExp library和它的 Unicode addon .这将允许您在正则表达式中使用我上面提到的所有 Unicode 脚本。

脚本与块

始终支持 Unicode 脚本而不是 Unicode 块。块与特定脚本中的代码点匹配不佳。块经常会遗漏许多不在其不完整范围内的重要代码点,并包含许多尚未分配任何字符的代码点。脚本包括所有相关的代码点,仅此而已。

关于javascript - 正则表达式西类牙语和阿拉伯语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881765/

相关文章:

javascript - 在 JS 中制作 Atom 包 : go to line

javascript - "multiple variable assignment"到底叫什么?

javascript - 如何使用正则表达式从消息中过滤出这些数据?

java - 在 unix/linux 中工作的 java 中将 unicode 字符串转换为 ASCII

c++ - g++ unicode 字符 ifstream

javascript - HTML 音频无法设置当前时间

javascript - 使用 JQuery 和 CSS 在图像上叠加文本?

regex - .htaccess 将 301 重定向到移动目录 - 重定向错误太多

javascript - 无法使与 javascript 长度相关的正则表达式起作用

c++ - 在 GUI 中显示阿拉伯语文本