正则表达式查找函数名

Regex to find function name

本文关键字:函数 查找 正则表达式      更新时间:2023-09-26

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

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

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

I tried with

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

,它应该在组2中给出functionName,但我失败了,因为上面的参数

谁能建议我一个更好的正则表达式为这个目的?

使用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