阅读:1946回复:1
如何firefox 的 javascript 的运行效率function bb(s,r){ if(r=="1"){ document.write(s); return false; } s=s.replace(/\[b\]/g,'<b>'); s=s.replace(/\[\/b\]/g,'</b>'); s=s.replace(/\[u]/g,'<u>'); s=s.replace(/\[\/u]/g,'</u>'); s=s.replace(/\[i]/g,'<i>'); s=s.replace(/\[\/i]/g,'</i>'); s=s.replace(/\[list\]/g,'<ul>'); s=s.replace(/\[\/list\]/g,'</ul>'); s=s.replace(/\[olist\]/g,'<ol>'); s=s.replace(/\[\/olist\]/g,'</ol>'); s=s.replace(/\[hr]/g,'<hr width=40% align=left siez=1>'); s=s.replace(/\[\/list\]/g,'</ul>'); s=s.replace(/\[sub]/g,'<sub>'); s=s.replace(/\[\/sub]/g,'</sub>'); s=s.replace(/\#([0-9]{3})\#/g,"[img]http://photobucket.com/albums/v466/onihimeyuki01/kunlunland/smile/$1.gif[/img]"); s=s.replace(/\[font=([^\[]*)\](.+?)\[\/font\]/g,"<font face=\"$1\">$2</font>"); s=s.replace(/\[size=(1|2|3|4|5)\](.+?)\[\/size\]/g,"<font size=\"$1\">$2</font>"); s=s.replace(/\[color=([#0-9a-z]{1,10})\](.+?)\[\/color\]/ig,"<font color=\"$1\">$2</font>"); s=s.replace(/\[url=([^\[]*)\](.+?)\[\/url\]/ig,"<a href=$1 target=_blank>$2</a>"); s=s.replace(/\[url\]www\.([^\[]*)\[\/url\]/ig,"<a href=\"http://www.$1\" target=_blank>[url]www.$1</a>[/url]"); s=s.replace(/\[url\]([^\[]*)\[\/url\]/ig,"<a href=\"$1\" target=_blank>$1</a>"); s=s.replace(/\[quote\]\s*(.*?)\s*\[\/quote\]/g,"<table cellpadding=5 cellspacing=1 border=0 bgcolor=000000><tr><td bgcolor=ccddee>���ã� <br>$1</td></tr></table>"); s=s.replace(/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/g,"<div align=$2>$4</div>"); s=s.replace(/\[img\]\s*(\S+?)\s*\[\/img\]/ig,"<img src=$1 border=0>"); s=s.replace(/\[attach\]\s*(.*?)\s*\[\/attach\]/g,"<font color=blue>����</font><br><table cellpadding=0 cellspacing=5 border=0 class=header class=attach><tr><td class=c>$1</td></tr></table>"); document.write(s); } 以上代码,对于较长字符串,FX要比IE慢许多倍。 测试结果(运行1000次) FX(1.5.0.1): 578ms 594ms 593ms 594ms 594ms IE: 172ms 156ms 140ms 156ms 157ms 如何解决以上代码的问题?(从提高replace方法效率来看) |
|
1楼#
发布于:2006-02-19 16:47
虽然不懂,但是顶起来先。。。。。。。
|
|
|