js Replace结合正则 替换掉重复出现的字符串
2011-02-15 15:58
363 查看
今天想把网站上关于用户搜索资料后的结果列表进行处理,如同百度搜索一样,加入我搜索框中输入“我要日日发网络”,点击搜索按钮所得的结果列表中将会出现“我要日日发网络”字符串为红色。
我今天想到用js来进行处理,就是利用js内的replace函数对结果列表内的字符串进行指定字符串的替换工作,开始我是这样写的
最后运行页面发现只替换掉了第一个“日日发”字符串,其他“日日发”字符串没有被替换掉,开始百思不得其解,后来在朋友的帮助下了解到js内的replace和c#内的replace有很大的不同,js内的replace默认的只是对字符串进行一次扫描。那么利用js的replace函数如何才能够达到字符串全部替换的效果呢? 这里我们就必须引入正则式了的,修改后的js函数如下所示:
这两者一比较就很清楚问题出在哪里了的,利用正则式很轻松地解决了问题,在这里 new RegExp(str,"gi") 这句话是什么意思呢?
后来查阅了一些资料,g - 从头至尾扫描完一次整个字符串,i- 不区分替换字符串的大小写。那么整个语句的意思就好理解了的。
希望我的经验能够给大家带来方便。
我今天想到用js来进行处理,就是利用js内的replace函数对结果列表内的字符串进行指定字符串的替换工作,开始我是这样写的
<mce: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("日日发"); // --></mce:script>
最后运行页面发现只替换掉了第一个“日日发”字符串,其他“日日发”字符串没有被替换掉,开始百思不得其解,后来在朋友的帮助下了解到js内的replace和c#内的replace有很大的不同,js内的replace默认的只是对字符串进行一次扫描。那么利用js的replace函数如何才能够达到字符串全部替换的效果呢? 这里我们就必须引入正则式了的,修改后的js函数如下所示:
<mce: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("日日发"); // --></mce:script>
这两者一比较就很清楚问题出在哪里了的,利用正则式很轻松地解决了问题,在这里 new RegExp(str,"gi") 这句话是什么意思呢?
后来查阅了一些资料,g - 从头至尾扫描完一次整个字符串,i- 不区分替换字符串的大小写。那么整个语句的意思就好理解了的。
希望我的经验能够给大家带来方便。
相关文章推荐
- js使用Replace结合正则替换重复出现的字符串功能示例
- 替换掉文本中出现次数较多的重复的字符串
- 正则表达式:字符串中连续重复字符串的识别和替换
- 替换重复出现字符串 php
- Java使用正则表达式截取重复出现的XML字符串功能示例
- 用Java正则去掉字符串中重复出现的字符
- 替换重复出现字符串
- 在java中使用正则表达式,截取重复出现的XML字符串
- 用Java正则去掉字符串中重复出现的字符
- 替换一个字符串中首次出现的字符为特定字符
- php结合正则获取字符串中数字
- 给定一个只包含大写英文字母的字符串,可以用另一个字母替换字符串中的任何字母最多k次。查找包含所有重复字母的最长子字符串的长度,
- Java去除字符串中重复出现的字符
- 【转】在EditPlus中利用正则表达式替换字符串
- 单个字段屏蔽重复出现的字符串
- Java利用正则表达式统计某个字符串出现的次数
- 在JS中,使用正则表达式,用指定字符替换字符串前后空格
- PHP 正则 如何匹配不出现某段字符串的写法!(保留备份)
- HDU 3518 Boring counting(后缀数组啊 求字符串中不重叠的重复出现至少两次的子串的个数)
- asp 正则 过滤重复字符串的代码