Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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_Jquery - Fatal编程技术网

Javascript 如何使用正则表达式获取阿拉伯字符串中的单词列表?

Javascript 如何使用正则表达式获取阿拉伯字符串中的单词列表?,javascript,jquery,Javascript,Jquery,我有这样的阿拉伯文本: 㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈 我想从它们中解析文本(不带،并删除空格),因此 㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈 例如: var m = 'احوال العدد، فی اللغة، العربیة' m.match(?); 有人能帮我在这种情况下使用正确的正则表达式吗?除非必须,否则我不会使用正则表达式。对于简单的情况,其他选项通常更快 例如,如果您只想在单个字符的实例上拆分,请尝试以下操作,而不是使用正则表达式: var matches = m.split(" "); 你说:

我有这样的阿拉伯文本:

㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈

我想从它们中解析文本(不带
،
并删除空格),因此

㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈

例如:

var m = 'احوال العدد، فی اللغة، العربیة'
m.match(?);

有人能帮我在这种情况下使用正确的正则表达式吗?

除非必须,否则我不会使用正则表达式。对于简单的情况,其他选项通常更快

例如,如果您只想在单个字符的实例上拆分,请尝试以下操作,而不是使用正则表达式:

var matches = m.split(" ");
你说: 。。。在
之后

不知道你所说的“在
之后”
是什么意思

把它也拿走? 如果您也想删除它,
string.split
仍然可以处理:

var matches = m.split("، "); // Note that it seems to need LTR ordering...
您得到的输出看起来与您在问题中所说的一样:

“اح㶊㶊عددد”
“فیالغة”
“العبیة”

仅在找到该字符后返回匹配项? 如果您只想返回在该字符首次出现后找到的匹配项,我会使用and

下面是一些可以实现这一点(和演示-)的代码:

var m='
var matchStartIndex=m.indexOf(“،”)+1;
var matches=matchStartIndex>0&&matchStartIndex”);
}
这里的额外代码用于错误处理,以防找不到
،
,或者后面没有字符

您得到的输出有点奇怪(第一个字符串是空的),因为该字符串以一个
”开头:

''
“فی”
“الغة،”
“العبیة”


如果要拆分字符串,请使用
.split
,而不是
.match

>>> var m = 'احوال العدد، فی اللغة، العربیة';
>>> res = m.split(/،\s*/)
["احوال العدد", "فی اللغة", "العربیة"]
>>> res[0]
"احوال العدد"
没有正则表达式:

var str = 'احوال العدد، فی اللغة، العربیة';
var arr = str.split('،');
arr = $.map(arr, function(val, i) {
  return val.trim();
});
使用RegExp:

x=m.match(/([\u0600-\u060B\u060D-\u06FF][\u0600-\u060B\u060D-\u06FF\s]+[\u0600-\u060B\u060D-\u06FF])/g);

小提琴:

我希望这能帮助你擦除“,”:

结果可以在这里看到:
请您考虑将标题改进为更具描述性的问题吗?我需要一个jQuery解决方案,用于输出<代码> ''.''.''.''.''.''.''.''.'/''.'/'>代码>怎么样?@KateWintz:对不起,我当时脑子里是C模式:)被删除了,所以我现在不应该吓跑其他答案…@Merlyn Morgan Graham-好的,没问题。我想Kate想要一个javascript解决方案,而不是C模式。我把我的答案改成javascript并取消删除:)
x=m.match(/([\u0600-\u060B\u060D-\u06FF][\u0600-\u060B\u060D-\u06FF\s]+[\u0600-\u060B\u060D-\u06FF])/g);
var m = 'احوال العدد, فی اللغة, العربیة';
var strReplaceAll = m;
var intIndexOfMatch = strReplaceAll.indexOf( "," );

// Loop over the string value replacing out each matching
// substring.
while (intIndexOfMatch != -1){
// Relace out the current instance.
strReplaceAll = strReplaceAll.replace( ',',' ' )

// Get the index of any next matching substring.
intIndexOfMatch = strReplaceAll.indexOf( "," );
}
//print out the result


document.write(strReplaceAll);