25

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

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

结果: 正则表达式匹配阿拉伯图像

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

4

3 回答 3

45

试试这个:-

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)

内容取自维基百科 - Unicode 中的阿拉伯文字

于 2012-07-04T06:38:17.603 回答
3

我建议这样做:

\p{InArabic}
于 2014-08-21T20:36:28.490 回答
0

您可以使用翻译阿拉伯语字符列表的功能来完成它,它非常简单。

像这样:

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

   return regexStr;
}

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

var regexStr = "/[[alf]-[ya]]/";

 function (regexStr) {
   regexStr = replace(regexStr,"[alf]","\u0600");
   regexStr = replace(regexStr,"[ya]","\u06FF");

   return regexStr;
}
于 2016-04-13T21:04:15.437 回答