我目前正在使用 javascript (node.js) 开发一个项目,该项目让我试图从函数中获取参数名称数组(不是值,我不需要参数)。我目前正在使用 Function.toString() 来获取函数字符串,然后针对该字符串运行正则表达式以获取我的参数列表。
让我们看一个简单的例子:
var myFunction = function (paramOne, paramTwo) { ... }
对此运行我的正则表达式,然后做一些字符串魔术(拆分等),我希望得到一个像这样的数组:
paramList = ['paramOne', 'paramTwo']
我有一些可行的方法,但我觉得它可能不是最好的解决方案,因为 javascript 允许您将一些时髦的字符用于变量名,并且 javascript 将允许您在多行上定义函数。
这是我目前拥有的:
function.*[\w\s$]*(\((.*[\w\s,$]*)\))
这给了我第 1 组中的“匹配”,然后是第 2 组中没有括号的参数列表,这很酷。这真的是做我想做的最好的方法吗?我可以为此使用更好的正则表达式吗?我并不是真的在寻找“更简单”的东西,而实际上只是在寻找可以捕捉所有可能情况的东西。
任何帮助将不胜感激,并提前非常感谢!