javascript获取括号[]之间的字符串
在我的段落中,我必须在括号[]之间找到字符串 (工业工程)javascript获取括号[]之间的字符串,javascript,Javascript,在我的段落中,我必须在括号[]之间找到字符串 (工业工程) 这是我的段落,但我有[code1],还有另一个括号[code2]。 在我的JavaScript中,我遍历了所有字符串,只得到数组的结果 “代码1”和“代码2” 提前谢谢你 可以使用正则表达式检索这些子字符串 问题是JS没有lookbehind。然后,您可以检索带括号的文本,然后手动删除它们: (document.getElementById('mytext').textContent .match(/\[.+?\]/g)//使用正
这是我的段落,但我有[code1],还有另一个括号[code2]。
在我的JavaScript中,我遍历了所有字符串,只得到数组的结果
“代码1”和“代码2”
提前谢谢你 可以使用正则表达式检索这些子字符串 问题是JS没有lookbehind。然后,您可以检索带括号的文本,然后手动删除它们:
(document.getElementById('mytext').textContent
.match(/\[.+?\]/g)//使用正则表达式获取匹配项
||[]//如果没有匹配项,则使用空数组
).map(函数(str){//迭代匹配
return str.slice(1,-1)//删除括号
});
或者,您可以使用捕获组,但随后必须迭代调用exec
(而不是单个match
):
var str=document.getElementById('mytext').textContent,
rg=/\[(.+?)\]/g,
匹配;
while(match=rg.exec(str))//迭代匹配
匹配[1];//用它做点什么
那么你尝试过什么?@GeorgeJempty是的,但是由于JS没有lookbehinds,我应该使用一个捕获组,它不是由全局匹配检索的,所以我应该在循环中使用exec
,我认为这不会简单得多。嗯,我也包括了这个选项。@GeorgeJempty,循环可以将每个子字符串推送到一个数组中。这是留给读者的练习。
<p id="mytext">
this is my paragraph but I have [code1] and there is another bracket [code2].
</p>