我需要在regex的帮助下找到应用于变量的最后一个函数的名称。例如:
aaa.test().other().mainFunction(a.test(),"test");
正则表达式匹配应该给出" mainFunction"作为输出。
我试过
/(.*)\.(\w+)\([ ,\w\(\)\.\"]*\)/
应该在group2中给出functionName,但是我对上述争论失败了。
有人可以为此建议我更好的正则表达式吗?
答案 0 :(得分:0)
使用UglifyJS解析器。
var jsp = require('uglify-js');
function lastMethod(js) {
var ast = jsp.parse(js);
return js + ': ' + ast.body[0].body.expression.end.value;
}
console.log(lastMethod('aaa.test().something(1, 2).new()'));
console.log(lastMethod('aaa.mainFunction(a(1), b(2))'));
输出:
aaa.test().something(1, 2).new(): new
aaa.mainFunction(a(1), b(2)): mainFunction