js对象的正则表达式

时间:2017-10-29 17:13:20

标签: javascript regex

我有一个字符串

{{ renderBlock("sometext1",{
    id:1555267
}) }}
{{ renderBlock("sometext2",{
    id:15553
}) }}
{{ renderBlock("sometext3",{
    content:"somecontent"
}) }}

所以,我需要从函数renderBlock中提取参数 我可以解析第一个参数,但我无法解析第二个参数 - js object

正则表达式/{{ renderBlock\("(.*)",{(.|\n)[^)}]*/不起作用

3 个答案:

答案 0 :(得分:0)

我不知道你的字符串如何改变,但这适用于给出的例子:

renderBlock\("(.+)",((.|\n)+?)\)

第1组是第一个参数,第2组是第二个参数。

Try it here!

答案 1 :(得分:0)

第二个论点是大括号之间,也许这个regex正是你要找的:

{{ renderBlock\("(.*)",({(?:.|\n)+?})

这将导致2个捕获组。

答案 2 :(得分:0)

我稍微调整你的正则表达式。试试这个

'{{ renderBlock("sometext3",{content:"somecontent"}) }}'.match(/{{ renderBlock\("(.*)"(,\{[^)]*\})\)*.*/)

正则表达式

/{{ renderBlock\("(.*)"(,\{[^)]*\})\)*.*/
相关问题