正则表达式匹配javascript函数的定义并确保它返回一些东西?

Joã*_*imo 1 javascript regex function

我需要确保一些提交的代码具有一个名为mapfndefined 的函数,并且该函数返回一个结果.我提出了以下正则表达式: mapfn\s+?\=\s+?function\s+?\(split\)\s+?\{.+?return\(result\).+?\}匹配类似的东西

mapfn = function (split) {
    var i = 5+4;
    for (var j = 0; j < 10; j++) {
        i += j*Math.random()*10;
    }
    var result = i;
    return(result)
}
Run Code Online (Sandbox Code Playgroud)

这是可取的但是如果我使用这个代码来获得一个示例闭包编译器并获得类似的东西mapfn=function(){for(var b=9,a=0;a<10;a++)b+=a*Math.random()*10;return b};,那么正则表达式是无用的.此外,用户提交类似的东西

function mapfn (split) {
    var i = 5+4;
    for (var j = 0; j < 10; j++) {
        i += j*Math.random()*10;
    }
    var result = i;
    return(result)
}
Run Code Online (Sandbox Code Playgroud)

然后正则表达式也没用.

对于这个问题,我觉得有一个更优雅的解决方案,而不是为这个工作提供5或6个正则表达式并尝试匹配其中任何一个.

SLa*_*aks 8

这与正则表达式完全不可能.

考虑

function x() { if (1 < 0) return 7; }
Run Code Online (Sandbox Code Playgroud)

您所能做的就是在Javascript环境中解析函数,调用它,并查看它返回的内容.

如果要确保它始终返回值,则需要解决暂停问题.