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>