源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 353|回复: 14

[正则表达式] 用JavaScript实现全局替换,解决$等特殊符号的难题[

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-12-11 00:00:00 | 显示全部楼层 |阅读模式
感谢海浪提供的正则,原贴请参见:
http://www.iecn.net/bbs/view/106503.html

因为要做个模板替换的东西,里面的变量采用${MyName}这种格式的命名方式。在进行全局替换时,遇到两个难点:
1.要么无法替换掉$等特殊符号
2.要么无法忽略大小写

在海浪有帮助下,终于有了最佳实现方式:)

最佳实现方式:
复制代码 代码如下:<script type="text/javascript"> 
String.prototype.replaceAll = stringReplaceAll; 

function stringReplaceAll(AFindText,ARepText){ 
 var raRegExp = new RegExp(AFindText.replace(/([\(\)\[\]\{\}\^\$\+\-\*\?\.\"\'\|\/\\])/g,"\\$1"),"ig"); 
 return this.replace(raRegExp,ARepText); 


var ssString="www.cnlei.com;www.CnLei.net;www.cnlei.org"; 
alert(ssString.replaceAll("cnlei","iecn")); 

ssString="www.${MyName}.com;www.${MyName}.net;www.${MyName}.org"; 
alert(ssString.replaceAll("${MyName}","cnlei")); 

ssString="www.{MyName}.com;www.{MyName}.net;www.{MyName}.org"; 
alert(ssString.replaceAll("{MyName}","cnlei")); 
</script> 
以前使用方法一:(可实现忽略大小,但无法实现特殊符号的替换)
复制代码 代码如下:<script type="text/javascript"> 
String.prototype.replaceString = stringReplaceAll; 

function stringReplaceAll(AFindText,ARepText){ 
 var raRegExp = new RegExp(AFindText,"ig"); 
 return this.replace(raRegExp,ARepText); 


var ssString="www.cnlei.com;www.CnLei.net;www.cnlei.org"; 
alert(ssString.replaceString("cnlei","iecn")); 

ssString="www.${MyName}.com;www.${MyName}.net;www.${MyName}.org"; 
alert(ssString.replaceString("${MyName}","cnlei")); 

ssString="www.{MyName}.com;www.{MyName}.net;www.{MyName}.org"; 
alert(ssString.replaceString("{MyName}","cnlei")); 
</script> 以前使用的方式二:(可替换特殊符号$等,但无法忽略大小写)
复制代码 代码如下:<script type="text/javascript"> 
String.prototype.replaceString = function(s1,s2){ 
this.str=this; 
if(s1.length==0)return this.str; 
 var idx=this.str.indexOf(s1); 
 while(idx>=0){ 
 this.str=this.str.substring(0, idx)+s2+this.str.substr(idx+s1.length); 
 idx=this.str.indexOf(s1); 
 } 
 return this.str; 

var ssString="www.cnlei.com;www.CnLei.net;www.cnlei.org"; 
alert(ssString.replaceString("cnlei","iecn")); 

ssString="www.${MyName}.com;www.${MyName}.net;www.${MyName}.org"; 
alert(ssString.replaceString("${MyName}","cnlei")); 

ssString="www.{MyName}.com;www.{MyName}.net;www.{MyName}.org"; 
alert(ssString.replaceString("{MyName}","cnlei")); 
</script>
回复

使用道具 举报

0

主题

1万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-2-19 17:05:00 | 显示全部楼层
66666666666
回复 支持 反对

使用道具 举报

62

主题

160

回帖

1128

积分

金牌会员

Rank: 6Rank: 6

积分
1128
QQ
发表于 2023-3-30 10:46:36 | 显示全部楼层
哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2023-9-23 07:16:25 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

16

主题

2万

回帖

174

积分

注册会员

Rank: 2

积分
174
发表于 2023-10-19 13:51:57 | 显示全部楼层
管灌灌灌灌灌灌灌灌灌灌
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-25 08:55:02 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-7-18 02:09:06 | 显示全部楼层
非常vbcbvcvbvcb
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

124

积分

注册会员

Rank: 2

积分
124
发表于 2024-7-31 00:52:24 | 显示全部楼层
给爸爸爸爸爸爸爸爸爸爸八佰伴八佰伴
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2024-9-16 12:24:07 | 显示全部楼层
数据库了多久撒快乐的健身卡啦
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

294

积分

中级会员

Rank: 3Rank: 3

积分
294
发表于 2024-10-5 04:01:15 | 显示全部楼层
hi哦和烦恼农家女
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-29 13:31 , Processed in 0.202891 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表