问题不在正则上,而在于你的循环
把arrayKeywords.join(",")成一个字符串,然后用正则匹配,在拆分就会快很多
把arrayKeywords.join(",")成一个字符串,然后用正则匹配,在拆分就会快很多
解决方案 »
- Jquery实现点击换图片
- 关于<marquee>的一个小问题
- 关于mootools的Class中的reset函数的困惑
- 点击Button让text里面的数字加一请问怎么弄
- 关于(使用数字证书)禁止弹出"在此页上的ActiveX控件和本页上其它部分的交互可能不安全.你想允许这种交互吗"的问题
- 从access数据库读取字段,加入到javascript中?
- 请问一下含有JS脚本的HTML页执行方式?
- 如何禁止页面使用缓存?
- 请教为啥JS在IE8下运行不了?IE9,搜狗,FF,360都正常
- 如何使用html+javascript实现单文档多视图
- 求一个只能输入2006-09-16 16:10:46 这样日期格式正则表达式
- 同一页面2个JAVASCRIPT的问题
var re = new RegExp("(" + arrayKeywords.join("|") + ")", "gi");
content = content.replace(re ,"<strong>$1</strong>");
换成
re= new RegExp("("+keyword+")", "i");
用10ms就可以了,这个.*?太耗内存了
content.replace(keyword,"<b>"+keyword+"</b>");
就可以了。看搂主的表达式,好像是每个关键字只替换一次?推荐搂主:
http://www.regexlab.com/zh/regref.htm
var keywords = new Array(2);
keywords[0] = ["wc1", "wc2", "wc3"];
keywords[1] = [];
keywords[1]["wc1"] = "nwc1";
keywords[1]["wc2"] = "nwc2";
keywords[1]["wc3"] = "nwc3";var p = new RegExp("(" + arrayKeywords.join("|") + ")", "gi");
var j = content.replace(p, function (a, b) {
return "<strong>" + keywords[1][b] + "</strong>";
});
//这个在效率上应该比你FOR那个好很多。
</script>
忘记改了。。