Регулярное выражение для объекта js

У меня есть строка

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

Итак, мне нужно извлечь аргументы из функции renderBlock. Я могу разобрать первый аргумент, но я не могу проанализировать второй аргумент - js object

Регулярное выражение /{{ renderBlock("(.*)",{(.| )[^)}]*/не работает

javascript,regex,

-1

Ответов: 3


0 принят

Я не знаю, как ваша строка может измениться, но это работает для приведенного примера:

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

Группа 1 является первым аргументом, второй - второй.

Попробуйте здесь!


0

Второй аргумент - между фигурными фигурными скобками, возможно, это регулярное выражение - это то, что вы ищете:

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

Это приведет к 2 группам захвата.


0

Я немного настраиваю ваше регулярное выражение. Попробуй это

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

Регулярное выражение

/{{ renderBlock("(.*)"(,{[^)]*}))*.*/
JavaScript, регулярное выражение,
Похожие вопросы
Яндекс.Метрика