执行以下程序就知道了<script language=vbs>
function trans1(strContent)
strContent = Replace(strContent, "", "<b>")
strContent = Replace(strContent, "", "</b>")
trans1=strContent
end functionfunction trans2(strContent)
set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[b\](.*?)\[\/b\]"
strContent = re.Replace(strContent,"<b>$1</b>")
trans2=strContent
end functionfunction trans3(strContent)
set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[b\]"
strContent = re.Replace(strContent,"<b>")
re.Pattern = "\[\/b\]"
strContent = re.Replace(strContent,"</b>")
trans3=strContent
end functionfunction trans4(strContent)
set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[(\/?b)\]"
strContent = re.Replace(strContent,"<$1>")
trans4=strContent
end function</script>
<SCRIPT LANGUAGE="JScript">
function Repeat(str,n){
/************(qiushuiwuhen 2002-5-26)**************/
for (t=Math.round(Math.sqrt(n)); t>0; t--)if(n%t==0)break;
var tmp=new Array(t+1).join(str)
return new Array(n/t+1).join(tmp)
}
function SubmitEnter(num){
var str=Repeat("test",num)
var ret="count="+num
var loStartDate = new Date();
lsHTML=trans1(str);
var loEndDate = new Date();
ret+="\n"+(loEndDate-loStartDate+":"+lsHTML.length); var loStartDate = new Date();
lsHTML=trans2(str);
var loEndDate = new Date();
ret+="\n"+(loEndDate-loStartDate+":"+lsHTML.length); var loStartDate = new Date();
lsHTML=trans3(str);
var loEndDate = new Date();
ret+="\n"+(loEndDate-loStartDate+":"+lsHTML.length); var loStartDate = new Date();
lsHTML=trans4(str);
var loEndDate = new Date();
ret+="\n"+(loEndDate-loStartDate+":"+lsHTML.length);

alert(ret)
}
</script><input type=text name=count value=10000>
<INPUT type=button onclick=SubmitEnter(document.all.count.value) value="submit">

解决方案 »

  1.   

    我想第一种率是最高的!第2和3种操作范围及搜索灵活度上,都将优于第一种而设计灵活且通用的对象,很可能影响其本身的功能效率!所以,第一种直接使用函数应该是最快的!至于更好的方法,也就差不多了,有上面几种够用了!
      

  2.   

    但事实上第一种却是最差的,可运行我上面的代码便知
      

  3.   

    是呀是呀,真的很奇怪,为什么第一种效率会这么差呢?