这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 js 使用 Replace 结合正则替换重复出现的字符串功能, 可实现关键词描红的功能, 涉及 JS 重复匹配的相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 js 使用 Replace 结合正则替换重复出现的字符串功能。分享给大家供大家参考,具体如下:
今天想把网站上关于用户搜索资料后的结果列表进行处理,如同百度搜索一样,加入我搜索框中输入 "我要日日发网络",点击搜索按钮所得的结果列表中将会出现 "我要日日发网络" 字符串为红色。
我今天想到用 js 来进行处理,就是利用 js 内的 replace 函数对结果列表内的字符串进行指定字符串的替换工作,开始我是这样写的
- <script type="text/JavaScript" language="javascript">
- < !--
- function ReplaceStr(str) {
- var content = document.getElementById("content").innerhtml;
- content = content.replace(str, "<font color='red'>" + str + "</font>");
- document.getElementById("content").innerHTML = content;
- }
- ReplaceStr("日日发");
- // -->
- </script>
最后运行页面发现只替换掉了第一个 "日日发" 字符串,其他 "日日发" 字符串没有被替换掉,开始百思不得其解,后来在朋友的帮助下了解到 js 内的 replace 和 c# 内的 replace 有很大的不同,js 内的 replace 默认的只是对字符串进行一次扫描。那么利用 js 的 replace 函数如何才能够达到字符串全部替换的效果呢? 这里我们就必须引入正则式了的,修改后的 js 函数如下所示:
- <script type="text/javascript" language="javascript">
- < !--
- function ReplaceStr(str) {
- var content = document.getElementById("content").innerHTML;
- content = content.replace(new RegExp(str, "gi"), "<font color='red'>" + str + "</font>");
- document.getElementById("content").innerHTML = content;
- }
- ReplaceStr("日日发");
- // -->
- </script>
这两者一比较就很清楚问题出在哪里了的,利用正则式很轻松地解决了问题,在这里 new RegExp(str,"gi") 这句话是什么意思呢?
后来查阅了一些资料,g - 从头至尾扫描完一次整个字符串,i- 不区分替换字符串的大小写。那么整个语句的意思就好理解了的。
希望本文所述对大家 JavaScript 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0711/329104.html