首页 > 解决方案 > 字符串中的函数名称

问题描述

有人如何从 JavaScript 中的字符串中获取所有函数名称?

假设我的字符串是:

var test = "function hello(){} function world(count){ alert('Count:'+count)}"

我怎样才能得到函数名称(字符串的内容是随机的):

hello
world

有人可以告诉我如何用纯javascript完成吗?

标签: javascript

解决方案


使用自定义代码解析 JavaScript 并非易事。以包含alert("this is not a function haha() {}").

但是,如果您满足于简单、不完美的方法,那么您可以使用正则表达式,如下所示:

function getFunctionNames(src) {
    var re = /\bfunction\s*\*?\s*\b(\w+)\s*\(/g,
        match,
        names = [];
    while(match = re.exec(test)) names.push(match[1]);
    return names;
}

var test = "function hello(){} function* world(count){ alert('Count:'+count}";
console.log(getFunctionNames(test));


推荐阅读