正则表达式找到函数名称

时间:2014-03-14 20:39:40

标签: javascript regex

我需要在regex的帮助下找到应用于变量的最后一个函数的名称。例如:

aaa.test().other().mainFunction(a.test(),"test");

正则表达式匹配应该给出" mainFunction"作为输出。

我试过

/(.*)\.(\w+)\([ ,\w\(\)\.\"]*\)/

应该在group2中给出functionName,但是我对上述争论失败了。

有人可以为此建议我更好的正则表达式吗?

1 个答案:

答案 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