首页 新闻 会员 周边 捐助

JavaScript用Eval和RegExp创建正则性能相差这么大?

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-23 10:04

测试代码:

<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="utf-8"/>
</head>
<body>
<script type="text/javascript">
function GetReg1(reg){
var regex=null;
for(var i=0;i<1000;i++){
regex
=new RegExp(reg);
}
return regex;
}

function GetReg2(reg){
var regex=null;
for(var i=0;i<1000;i++){
regex
=eval("/"+reg+"/");
}
return regex;
}

console.profile(
"1");
GetReg1();
console.profileEnd(
"1");

console.profile(
"2");
GetReg2();
console.profileEnd(
"2");
</script>
</body>
</html>

测试结果:

是Eval很耗时吗?

草根程序猿的主页 草根程序猿 | 初学一级 | 园豆:129
提问于:2012-03-22 13:44
< >
分享
最佳答案
0

这篇文章

有“eval”的代码比没有“eval”的代码要慢上 100 倍以上。

收获园豆:20
dudu | 高人七级 |园豆:30778 | 2012-03-22 16:28
其他回答(1)
0

万能的东西效率自然不好,你还可以试试直接量,应该是最快的

alexstrasza | 园豆:115 (初学一级) | 2012-03-22 13:51

不太明白你说的直接量是什么意思

要根据传入的参数创建正则,还有其他更优的方法吗?

支持(0) 反对(0) 草根程序猿 | 园豆:129 (初学一级) | 2012-03-22 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册