【发布时间】:2017-09-15 13:15:04
【问题描述】:
我正在寻找一种从 js 代码字符串中按名称获取函数声明主体的方法。我在Nodejs环境中。 假设我有一些 spaghetti.js 文件。我可以把它读成一个字符串
const allJs = fs.readFileSync('spaghetti.js');
现在我需要一个函数来接收该字符串和函数名并返回一个字符串,其中包含{ } 之间的所有内容。
像这样的
allJs = 'let a=1; const b=[2, 3]; function cook(items){return items}; cook(b)';
parseFunction(allJs, 'cook');//'return items'
输入js的复杂度不受限制。
我试图为此找到一个 npm 模块,但没有运气。
【问题讨论】:
-
parseFunction的第二个参数(“cook”)是什么? -
如果你的输入js的复杂度没有限制,你应该指定你想要的函数体。所有,只是第一个,一个特殊的,甚至是嵌套的,类方法等等......?
-
@Jamiec 这是要在输入代码中查找的函数名称
-
对,但是您的字符串输入已经包含对
cook的调用。可能你的意思是return cook(b);不? -
@dsuckau,假设我只想要顶级函数声明。没有类、方法等。
标签: javascript node.js regex string