hug*_*omg 3 javascript regex search grep
我想搜索文件目录以查找使用dojo.map其可选的第四个参数调用常用函数的所有情况.
我想找到像这样的东西
map(an_array, a_function_by_name, x, fourth_arg);
Run Code Online (Sandbox Code Playgroud)
或者使用内联函数:
map(an_array, function(item, i, arr){
//anything
}, x, fourth_arg);
Run Code Online (Sandbox Code Playgroud)
我不想在没有第四个可选参数的情况下找到案例.这个函数在代码库中很常见,我不得不涉及数百个误报以找到我真正想要的案例
//this function also can be called with just 2 or 3 parameters
//(the second parameter can still be inline or not)
map(an_array, a_function);
map(an_array, a_function, x);
Run Code Online (Sandbox Code Playgroud)
我最初认为grep-ing是类似map([^,]*,[^,]*,[^,]*,[^,]*)但我不认为这是足够的,因为第二个参数是一个函数,这意味着它不仅可以跨越多行,而且还可以包含任意内部的Javascript代码.
使用所有四个参数调用函数时查找所有案例的最有效方法是什么?我在Linux机器上并不介意为此安装一个小工具,如果这恰好是最简单的解决方案.
这是一个高级方法:
map,并检查传递给调用的参数数量.这当然有其局限性:
map函数是否被调用,只是使用了名为的函数引用map.map通过"动态绑定"调用的情况.换句话说,虽然这是一个调用map,但不会发现:window['map'](foo, bar, baz, bah);.尽管存在这些限制,这可能足以满足您的需求.