高效JavaScript 字符串替换函数的benchmark
版权声明
:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2006/11/23/javascript-strreplace-benchmark/
以及本声明。
感谢Clear为我们提供了这个效率更高的字符串替换函数
。这是经常使用的HTML特殊字符替换函数,即将 &、<、>、" 等函数替换成 &、<、>、"。通常的作法都是连续使用数个 replace 函数,而Clear仅使用一个 replace 就完成了替换。
我对这两个函数作了benchmark,发现新函数的效率约为原函数的1.4倍。虽然没有预想中那么高效率,但当要替换的字符串更多时,效率应该会提高吧。
测试方法为,对一个2048字节长的字符串分别执行两个函数100次,取其执行时间。下面为10次测试的结果。toTXT_1 为通常的作法,toTXT_2 为Clear的方法。
toTXT_1(ms)
toTXT_2(ms)
toTXT_1/toTXT_2
1609
1204
75%
2250
1547
69%
1672
1313
79%
1813
1250
69%
1844
1219
66%
2063
1421
69%
2031
1172
58%
1797
1360
76%
2015
1281
64%
1860
1500
81%
测试代码:
<html>
<head>
<mce:script type="text/javascript"><!--
function toTXT_1(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;
}
function toTXT_2(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 "&":
相关文档:
本文主要介绍如何动态的增加、删除输入框,并获取输入框中的值~~
<html>
<head>
<title>JavaScript_动态增加/删除输入框_阿方索</title>
<script type="text/javascript">
<!--
var idNumber = 1,id="tableAFS";
function addTextBox() {
idNumber++;
//这里我们创建一个lab ......
很多情况下,我们要在发送到后台处理前,判断一下所上传的文件是不是符合大小要求,其实脚本可以很方便的帮助我们实现,代码如下
<html>
<head>
<title>JavaScript_获取文件大小_阿方索</title>
</head>
<body>
<input type="file" name="file1" id="file1" size="40" onchan ......
本文简要介绍JavaScript中confirm,alert,prompt的用法,希望大家学习过程中能得到一些启发。
window.confirm 参数就只有一个。显示提示框的信息。按确定,返回true;按取消返回false。
< SCRIPT> var bln = window.confirm("确定吗?"); alert(bln) < /SCRIPT> window.alert参数,只有一个,显示 ......
with
(object)
statements
参数
object
新的默认对象。
statements
一个或多个语句,object 是该语句的默认对象。
说明
with
语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * ......