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

Javascript 使用正则表达式自动命名匿名函数,javascript,regex,anonymous-function,Javascript,Regex,Anonymous Function,我正在研究一个正则表达式替换,它自动命名Javascript文件中的匿名函数 到目前为止,我已经想出了这个正则表达式: /^(\s*)(?!window\.)(\w+\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\(/gm 正确命名函数(并保留间距),除了窗口上的函数或数组中引用的函数(this.foo[i]:function(){}) 问题是此正则表达式与指定为变量的函数不匹配,如下所示: var foo = function() {} 到目前为止,这是一个带

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

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

/^(\s*)(?!window\.)(\w+\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\(/gm
正确命名函数(并保留间距),除了
窗口上的函数或数组中引用的函数(
this.foo[i]:function(){}

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

var foo = function() {}
到目前为止,这是一个带有我的正则表达式的正则表达式在线测试程序

有什么帮助吗?

试试这个:

^(\s*)((?!window\\.)|(var))(\s*)(\w+\\.)?(\w+)(\s*)([:=])(\s*)function(\s*)\\(
现在我明白了:D


^(\s*)((?!\s*窗口\.)(var))(\s*)(\w+\)(\w+)(\w+(\s*)([:=])(\s*)函数(\s*)\)\(

用于解析js文件。这是我直接在PHPStorm中执行的搜索/替换。这似乎不起作用(除了最后一个括号之前缺少的
`,它还与我不想匹配的
window`行匹配。现在它非常接近,它仍然忽略了
window
不在字符串开头的情况(请参见
^(\s*)((?!\s*window\)(var))(\s*)(\w+\)(\w+(\s*)([:=])(\s*)函数(\s*)\(
我想我们有赢家了^ ^@marcel:你介意添加一个新答案,这样我就可以接受了吗?