使用正则表达式自动命名匿名函数

Automatically name anonymous functions with regex

我正在研究在 Javascript 文件中自动命名匿名函数的正则表达式替换。

到目前为止,我已经想出了这个正则表达式:

/^(\s*)(?!window\.)(\w+\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\(/gm

除了 window 对象上的函数或在数组 (this.foo[i] : function() {}) 中引用的函数之外,正确命名函数(和保留间距)。

问题在于此正则表达式与指定为 vars 的函数不匹配,如下所示:

var foo = function() {}

到目前为止,这是一个使用我的正则表达式的正则表达式在线测试器 https://regex101.com/r/gI3dH5/3

有什么帮助吗?

试试这个:

^(\s*)((?!window\.)|(var))(\s*)(\w+\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\(

现在我明白了:D

^(\s*)((?!\s*window\.)|(var))(\s*)(\w+\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\(