javascript测试三种字符串替换方式效率

 

//第一种  直接正则表达式替换一次

function replaceTrim1(source){

  return  source.replace(/^\s|\s$/g,"");

}

//第二种  正则表达式替换两次,先替换前在替换后

function replaceTrim2(source){


     return  source.replace(/^\s*/,"").replace(/\s*$/,"");


}

//第三种 正则表达式替换前部分,后部分则是循环遍历

function replaceTrim3(source){


    var str= source.replace(/^\s*/,"");
    ws=/\s/;
    i=source.length;

    while (ws.test(source.charAt(--i))){

    };

    return str.slice(0,i);

}
 
/*
10000
短字段:10/18/47    " #id div.class test OK,fdfd,dfd,dfdfx,fdfd,dfdfdf,dfdfdf,dfdfd,jast  jfldf  fdfd ddf          "
 */
var source = " #id div.class test OK,fdfd,dfd,dfdfx,fdfd,dfdfdf,dfdfdf,dfdfd,jast jfldf fdfd ddf "
var starttime = new Date().getTime();
for (var i=0;i<10000;i++){
    replaceTrim1(source);
}
var endtime = new Date().getTime();;
console.log("replaceTrim1 use time="+(endtime-starttime))


 starttime = new Date().getTime();
for (var i=0;i<10000;i++){
    replaceTrim2(source);
}
 endtime = new Date().getTime();;
console.log("replaceTrim2use time="+(endtime-starttime))starttime = new Date().getTime();
starttime = new Date().getTime();
for (var i=0;i<10000;i++){
    replaceTrim3(source);
}
endtime = new Date().getTime();;
console.log("replaceTrim2use time="+(endtime-starttime))starttime = new Date().getTime();
 
最后用时分别为:10/18/47 
 
这个是短的字段,现在在用长文本来做处理,从text文本里面读取数据来处理,文本大小4KB
 function readFile(path){
            var oFso,oFile,sFile,sContent;
            sFile = "D:\\tool\\11.txt";

//写文件
            oFso = new ActiveXObject("Scripting.FileSystemObject");
//            oFile = oFso.OpenTextFile(sFile,2,true); //写方式打开
//            oFile.WriteLine("菩提本无树,明镜亦非台,本来无一物,何处惹尘埃!");
//            oFile.Close();

//读文件
            oFile = oFso.OpenTextFile(sFile,1);  //只读方式打开

            try{
                while (true) {
                    var temp = oFile.ReadLine();

                    sContent = (sContent == null ? "" : (sContent + "</br>")) + temp;

                }
            }catch (e){
                if(e=="Error: 输入超出了文件尾") //正常读取完文件,
                {

                }else{//其它异常
                    alert(e)
                }

            }


            oFile.Close();

            return sContent;
        }
 
如果运行读取文件的时候报错  :错误: Automation 服务器不能创建对象
则自行把internet选项里面的安全-->自定义级别-->ActiveX控件和插件-->对未标记为可安全执行脚本的ActiveX....-->选择启用
这次执行结果为:
运行1000次,
分别用时:
85/73/8
 
怎么最后一种方法数据更多用时反而多少了,这个不知道了。
 

你可能感兴趣的:(javascript测试三种字符串替换方式效率)