首先看看原来是怎么样做的:复制代码 代码如下:function toTXT(str){ str = str.replace(/&/g, "& amp;"); str = str.replace(/>/g, "& gt;"); str = str.replace(/</g, "& lt;"); str = str.replace(/"/g, "& quot;"); str = str.replace(/'/g, "& #39;"); return str; } [/code分析:上面的方法是用来替换过滤字符串的HTML代码的,一直认为这样做很没效率,因为要把这个字符串进行5次全文匹配(不是数据库中的全文检索),有没方法只使用一次全文匹配,就可以替换掉不同的字符串为不同的结果呢? 呵呵,终于找到了下面的这个方法: [code]function toTXT(str){ var RexStr = /<|>|"|'|&/g str = str.replace(RexStr, function(MatchStr){ switch(MatchStr){ case "<": return "& lt;"; break; case ">": return "& gt;"; break; case """: return "& quot;"; break; case "'": return "& #39;"; break; case "&": return "& amp;"; break; default : break; } } ) return str; } 看上去要比第一个方法要复杂一些,写的代码也要多一点点,不过呢,只用一次,就可以替换整个字符串里面的匹配字符为不同的结果,非常有效率的。而且代码看上去也很直观,修改方便。 更重要的是第一个方法假如要替换"&"一定要放在最前面,而后面的方面完全不用担心这个问题。 JavaScript还有很多鲜为人知的用法,而且很多思想在别的语言里面都没有。就算JAVA再怎么强大,他的正则表达式却在JDK1.4里面才引入,落后了很多。不过我没说JAVA就一定比JS差只类的话啊。 JS的应用范围绝对不止HTML,还有很多其他的方面都在使用他,比如WebFT(测试网站的工具),.NET等,并且在即将发布,传说中“FLASH杀手”——WPF/E(Windows Presentation Foundation/Everywhere)出现后,JS的应用范围更加宽广。 很多人都不屑于JS,认为他很低级,连基本的对象类型都没有。NO,错了,在.NET里面,也就是Jscript.Net中,微软将JS的版本提升为8.0,基本上他已经与C#没有任何差别,所有程序语言该有的他都具备了。 说一个笑话,我写.net和ASP就用的Jscript,但是VB和C#我也并不是属于那种泛泛而谈的类型,只是我觉得假如可以用一门语言从后写到前,包括他的周边项目,那将是一件非常惬意的事情。从此再也不会在多种语言中转来转去了。来看看WPF/E(Windows Presentation Foundation/Everywhere)的威力: 2005年的PDC大会上,微软介绍了一项名为WPF/E(Windows Presentation Foundation/Everywhere)的技术,在自己的MIX'06会议上又展示了新的特色。WPF/E依赖XAML和JavaScript来制作网页,它也带有跨平台工具,支持CLR、.NET、C#、VB.NET等的代码,实质上,它是一个与目前属于Adobe的Flash很类似的工具。 微软的程序员Mike Harsh曾经说过:“没错,我们正将C#带入Mac.” 虽然被大家认为是“Flash杀手”,不过微软的目标更远大一点:让用户不仅在桌面系统上使用微软的软件和技术,他们同样要占领网络和移动设备。 “实质上,WPF/E根本不是一个照搬的作品,它为开发者、设计师、技术员提供了一个综合性的开发设计平台。”开发者Joe Stegman说,“它能良好地与微软的其他产品结合,这一点是Flash平台望尘莫及的。”Stegman表示他们一直在很努力地进行WPF/E开发工作,已经发行了好几个内部版本,用户体验版在不久之后也会放出。 虽然现在Flash风光无限,有人可能认为微软的WPF/E没法超越Flash,不过想想多年以前网景的Netscape…… 图为在浏览器中演示的矢量图形,可以随意对图形进行缩放、旋转
推荐阅读
js退弹 IE关闭时弹出广告代码,可以防止屏蔽
在网上寻觅了很久JS退弹代码,也没有找出让人非常满意的代码。于是今天把收集的退弹代码做了一下整理,精简出一个非常短小精悍而强力的JS退弹代码,能够突破现在绝大多数浏览器的限制,包括SP2、IE6、IE7、遨游、M>>>详细阅读
本文标题:javascript之更有效率的字符串替换
地址:http://www.17bianji.com/kaifa2/JS/29521.html
1/2 1