在数组中存储搜索匹配的JavaScript

在数组中存储搜索匹配的JavaScript,javascript,arrays,regex,Javascript,Arrays,Regex,如何将搜索匹配项从id=“post\u body”存储到数组 在这种情况下,阵列将是: matches = ["Lorem ipsum", "Dolore", "Duis aute"]; 注意:单词“Dolore”出现两次,四周用--包围,但在数组中只能存储一次。您可以使用以下代码: 函数包含(a,obj){ var i=a.长度; 而(我--){ 如果(a[i]==obj){ 返回true; } } 返回false; } 变量re=/-\s*(.*?\s*-/g; var str='——L

如何将搜索匹配项从
id=“post\u body”
存储到数组

在这种情况下,阵列将是:

matches = ["Lorem ipsum", "Dolore", "Duis aute"];

注意:单词“Dolore”出现两次,四周用
--
包围,但在数组中只能存储一次。

您可以使用以下代码:

函数包含(a,obj){
var i=a.长度;
而(我--){
如果(a[i]==obj){
返回true;
}
}
返回false;
}
变量re=/-\s*(.*?\s*-/g;
var str='——Lorem ipsum——dolor sit amet,adipiscing Elite,sed do eiusmod Temporal Incidedut ut Labor et——Dolore——magna aliqua。但是,在最低限度上,我们需要一个实验室来进行日常工作--二人一组——他们在一起,在一起,在一起,在一起,在一起,在一起,在一起——在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起,在一起;
var-arr=[];
while((m=re.exec(str))!==null){
如果(!contains(arr,m[1]))
{ 
arr.push(m[1]);
}
}
警报(arr)
var text=document.getElementById('post_body')。值;
var res=text.match(/-\w+\s*\w*-/g);
//删除重复项
uniqueArray=res.filter(功能(项目、位置、自身){
返回自身索引(项目)=位置;
});
//移除“-”部分
finalArray=uniqueArray.map(函数(项){
返回项目。替换(/--/g,“”);
});
警报(最终射线)

——Lorem ipsum——dolor sit amet,尊敬的精英们,在劳动和生活中的临时工作——Dolore——magna aliqua。但是,在最低限度上,我们需要一个实验室来进行日常工作--Duis aute--irure dolor in reprehenderit in voluptate velit esse cilum--Dolore--eu fugiat nulla paritatur
您从
document.getElementById('post_body').value.match(/--)(.+?)--/)开始,然后将其缩小以获得唯一值。“如何将搜索匹配项从id=“post_body”存储到数组?”1。研究。2.实验。3.尝试。(4.如有必要,在1-3之后:发布一个问题,说明你希望它做什么,它在做什么,并问为什么。)非常感谢!我从javascript开始,你的回答帮助我理解它是如何工作的。我一直在学习,很高兴你喜欢。它只是另一种方法:不是执行后处理,而是执行逻辑步骤,排除它(1。获取捕获的文本,2。检查文本是否已经在数组中。3。如果在数组中找不到,则将找到的字符串添加到数组中)。如果您发现我的答案有用,请考虑将其投票(左上箭头)。.非常感谢!它是如此干净和说明性!是的,当分隔符大小相等时,它适用于这种情况。然而,它可以很容易地适应另一个场景。
matches = tex.scan(/--(.+?)--/).flatten
matches = matches.uniq
matches = ["Lorem ipsum", "Dolore", "Duis aute"];