Javascript 正则表达式匹配方括号内花括号内的字符串
上面的正则表达式返回括号之间的文本 例如:Javascript 正则表达式匹配方括号内花括号内的字符串,javascript,regex,Javascript,Regex,上面的正则表达式返回括号之间的文本 例如: var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}'; var qm = q.match(/\[(.*?)\]/g); console.log(qm); 如何重写上面的正则表达式,所以我提供了一个类似'data'的字符串,它将返回[{data}(其他数据)]。i、 e带括号的部分,其中包含大括号中的字符串。匹配大括号中的字符串 [{data}(
var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}';
var qm = q.match(/\[(.*?)\]/g);
console.log(qm);
如何重写上面的正则表达式,所以我提供了一个类似
'data'
的字符串,它将返回[{data}(其他数据)]
。i、 e带括号的部分,其中包含大括号中的字符串。匹配大括号中的字符串
[{data}(other data)]
var q='{[{main}(其他数据)][{data}(其他数据)][{address}(其他数据)]}';
var qm=(str)=>q.match(新的RegExp(`\\[{${str}}}\\\\(.*?\\\)\\\]`,'g');
console.log(qm(“数据”))
使用qm
变量,可以迭代匹配并测试第一个花括号之间的字符串,如下所示:
var q='{[{main}(其他数据)][{data}(其他数据)][{address}(其他数据)]}';
var qm=q.match(/\[(.*)\]/g);
对于(让质量管理中的e)
如果(e.match('\{([^\)]+)\}')[1]==“数据”)
控制台日志(e)代码>它必须是正则表达式吗?您建议使用什么其他方法?用于获取由括号包围的元素数组。一旦你有了数组,搜索每个元素寻找所需字符串应该是一件简单的事情。你需要使用正则表达式构造函数,比如'var regex=new RegExp('\[\\{'+'data'+'\\}[^\]+\]');用要匹配的变量替换“data”。代码中的${str}
是什么?它是正则表达式文本还是模板文本。旧版本的IE是否支持此功能?@jmenezes它是一个模板文本。为了支持浏览器,您可以像使用第一个代码片段一样使用普通字符串。你知道我如何在没有结果中的[
]
的情况下获得结果吗。因此,它不是[{data}(其他数据)]
,而是{data}(其他数据)
(无方括号)。如果可能的话,我会再发一个问题。
\[{data}\(.*?*\)\]