有人帮我写以下情况的RegEx
['somestring']
['somestring','',10]
['somestring', 'argString']
['somestring', 'argString',10]
['somestring', {prop1:'v1',prop2:'v2'}]
['somestring', {prop1:'v1',prop2:'v2'},100]
这是我到目前为止尝试过的
var regExp = /\b[^()]+\((.*)\)+\[(.*?)]/;
var matches = regExp.exec('somestring()[10]');
最佳答案
那可以工作:
var input = ['somestring()', 'somestring()[10]', "somestring('argString')", "somestring('argString')[10]", "somestring({prop1:'v1',prop2:'v2'})", "somestring({prop1:'v1',prop2:'v2'})[100]"];
console.log(input.map(function(v) {
let result = v.match(/(.*)\((.*)\)(\[([^\]]*)\])?/);
return [result[1], result[2], result[4]];
}));
关于javascript - RegEx提取括号和函数名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41776900/