寻找可以解析未注释掉的正则表达式的函数体的Node.js模块

时间:2016-03-26 19:43:48

标签: javascript regex node.js

说我有这样的功能:

function foo(x,y,z){

 // x.bar();

 x.baz();

}

如果我运行foo.toString().match(/x.bar/),我将获得已注释掉的匹配。

我正在寻找一个有人写过的图书馆,只有在没有注释的情况下才可以帮助我匹配正则表达式。有没有这样的lib?

1 个答案:

答案 0 :(得分:2)

要删除/忽略注释并保留行号,您必须自己编写一些可以解析/理解Javascript注释并可能将其转换为空格的内容,以便您可以运行正则表达式。

但是,请注意,相同的功能可以通过许多不同的方式执行,例如:

x["bar"]()

var y = "bar"; 
x[y]();

x.bar.call(x);

y = x;
y.bar();

或者,没有执行过这样的方法:

if (false) {
    x.bar();
}

var str = "   x.bar();   "

return;
x.bar();

因此,在没有实际运行代码并直接监视.bar()方法的情况下,尝试真正弄清楚特定函数调用是否实际由代码进行,这是一种滑坡。