Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阿拉伯语正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 阿拉伯语正则表达式

Javascript 阿拉伯语正则表达式,javascript,regex,Javascript,Regex,我想写一个正则表达式来匹配句子中的每个单词: 我的正则表达式:“\b(\w+)\b” 结果: 虽然它与英语单词很好地结合。使用阿拉伯语单词时不起作用。 我怎样才能在阿拉伯语单词上完成同样的壮举呢?试试这个:- function HasArabicCharacters(text) { var arregex = /[\u0600-\u06FF]/; alert(arregex.test(text)); } 列表的阿拉伯文字符集 [\u0600-\u06ff]|[\u0750-

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

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

结果:

虽然它与英语单词很好地结合。使用阿拉伯语单词时不起作用。 我怎样才能在阿拉伯语单词上完成同样的壮举呢?

试试这个:-

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)
内容取自维基百科-

我建议:

\p{InArabic}

你可以用函数来翻译阿拉伯字母表,这很简单

如下所示:

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;
}

如最新的Unicode标准中所述,一个具有完全支持的标准:
[\u0600-\u06ff].[\u0750-\u077f].[\ufb50-\ufbc1].[\ufbd3-\ufd3f].[\ufd50-\ufd8f].[\ufd92-\ufdc7].[\ufe70-\ufefc].[\uFDF0-\uFDFD]
。我已经测试过了,结果是正确的。据我所知,这是正则表达式中的标准语法。例如,您可以查看更多详细信息。