阿拉伯语的正则表达式

时间:2012-07-04 06:34:28

标签: javascript regex

我想写一个匹配句子中每个单词的正则表达式:

我的正则表达式:“\b(\w+)\b

结果: RegExp matching Arabic image

虽然它适用于英语单词。使用阿拉伯语单词时不起作用。 我怎么能用阿拉伯语单词完成同样的壮举?

3 个答案:

答案 0 :(得分:41)

试试这个: -

function HasArabicCharacters(text)
{
    var arregex = /[\u0600-\u06FF]/;
    alert(arregex.test(text));
} 

列表的阿拉伯字符集

[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]

Unicode中的阿拉伯语脚本:

Unicode 6.1 开始,阿拉伯语脚本包含在以下块中:

Arabic (0600—06FF, 225 characters)
Arabic Supplement (0750—077F, 48 characters)
Arabic Extended-A (08A0—08FF, 39 characters)
Arabic Presentation Forms-A (FB50—FDFF, 608 characters)
Arabic Presentation Forms-B (FE70—FEFF, 140 characters)
Rumi Numeral Symbols (10E60—10E7F, 31 characters)
Arabic Mathematical Alphabetic Symbols (1EE00—1EEFF, 143 characters)

内容取自维基百科 - Arabic script in Unicode

答案 1 :(得分:1)

我建议:

\p{InArabic}

答案 2 :(得分:0)

你可以使用函数来翻译Aracbic Characters列表,这很简单。

如同:

memcpy

或者在替换[alf]和[ya]以正确查看文字方向的另一个想法

function (regexStr) {
   regexStr = replace(regexStr,"ۿ","\u0600");
   regexStr = replace(regexStr,"؀","\u06FF");

   return regexStr;
}