gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:10:46 25 4
gpt4 key购买 nike

我需要确保一些提交的代码有一个名为 mapfn 的函数定义,并且该函数返回一个结果。我想出了以下正则表达式: 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)
}

这是可取的,但如果我用这段代码去寻找一个示例闭包编译器并得到类似 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)
}

那么正则表达式也没有用。

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

最佳答案

完全不可能用正则表达式来做。

考虑

function x() { if (1 < 0) return 7; }

您所能做的就是在 Javascript 环境中解析该函数​​,调用它,然后查看它返回的内容。

如果你想确保它总是返回一个值,你需要解决Halting Problem .

关于javascript - 正则表达式来匹配 javascript 函数的定义并确保它返回一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com