如何使用RegEx将功能作为参数进行匹配?

时间:2018-10-24 14:57:11

标签: javascript regex

我具有以下JavaScript RegEx来匹配以theme-为前缀的函数。

/(theme-([\w-]+))(?:\s*\(\s*)([^)]+?)(?:\s*\))/gm

但是,我还需要将其他函数作为参数进行匹配,例如theme-foo(param1, theme-bar(arg1)), param3),但是此RegEx无法正常工作,因为它假定在参数中调用的函数的右括号是该函数的右括号。主要功能。

RegEx Example with the issue

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如何遵循:

let s = `theme-foo(param1, theme-bar(arg1), param3)`;
let regex = /([\w-]+(\(\w+\))?)/g;
let result = [];
s.replace(regex,function(match,param){
    result.push(param);
});
console.log(result);