用JavaScript实现全局替换,解决$等特殊符号的难题[

感谢海浪提供的正则,原贴请参见:

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>

时间: 2024-08-03 13:14:10

用JavaScript实现全局替换,解决$等特殊符号的难题[的相关文章

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

感谢海浪提供的正则,原贴请参见: http://www.iecn.net/bbs/view/106503.html 因为要做个模板替换的东西,里面的变量采用${MyName}这种格式的命名方式.在进行全局替换时,遇到两个难点: 1.要么无法替换掉$等特殊符号 2.要么无法忽略大小写 在海浪有帮助下,终于有了最佳实现方式:) 最佳实现方式: 复制代码 代码如下: <script type="text/javascript">  String.prototype.replace

javascript实现全局匹配并替换的方法

  javascript实现全局匹配并替换的方法         这篇文章主要介绍了javascript实现全局匹配并替换的方法的总结,十分的简单实用,有需要的小伙伴可以参考下. 在javascript替换字符串使用的是replace函数,但在实际使用过程中却发现该函数只会替换被匹配的第一个字符,这就让人很不爽了,在php语言中,replace可是实现全局匹配并替换的.没办法,仔细研究了下,发现还是有其他办法实现全局匹配并替换的. (1)其实replace本身也可以实现这种功能的,但要通过正则的

vim全局替换命令

语法为 : [addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行. 如:"1,20" :表示从第1行到20行: "%" :表示整个文件,同"1,$": ". ,$" :从当前行到文件尾: s : 表示替换操作 [option] : 表示操作类型 如:g 表示全局替换; c表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏

JavaScript实现随机替换图片的方法_javascript技巧

本文实例讲述了JavaScript实现随机替换图片的方法.分享给大家供大家参考.具体如下: 下面代码可实现将页面上的图片随机替换成别的图片,或者随机显示一个图片 <script> document.write(<img src="img/+parseInt(Math.random()*(5)) +.gif"height="40" width="50"> </script> 其中的图片文件名为: 0.gif 1.

javascript实现全局匹配并替换的方法_javascript技巧

在javascript替换字符串使用的是replace函数,但在实际使用过程中却发现该函数只会替换被匹配的第一个字符,这就让人很不爽了,在php语言中,replace可是实现全局匹配并替换的.没办法,仔细研究了下,发现还是有其他办法实现全局匹配并替换的. (1)其实replace本身也可以实现这种功能的,但要通过正则的形式加个参数g,例如: 复制代码 代码如下: str.replace(/www.baidu.com/g,'www.jb51.net'); 或者: 复制代码 代码如下: str.re

JavaScript常用全局属性与方法记录积累

最近,在学习JavaScript,Java作域链包含全局,记录下常用的全局属性与方法,就当是知识的积累,未列出全部,如需查看全部可参考JS相关的API文档. 常用的全局属性: 全局属性      作用                              Infinity 表示正无穷大的数值 NaN 非数字值  undefined 未定义的值 常用的全局方法:  全局方法      作用                              encodeURI() 返回参数的副本,其中某

JavaScript常用全局属性与方法记录积累_基础知识

最近,在学习JavaScript,Java作域链包含全局,记录下常用的全局属性与方法,就当是知识的积累,未列出全部,如需查看全部可参考JS相关的API文档. 常用的全局属性: 全局属性      作用                              Infinity 表示正无穷大的数值 NaN 非数字值  undefined 未定义的值 常用的全局方法:  全局方法      作用                              encodeURI() 返回参数的副本,其中某

JavaScript利用正则表达式替换字符串中的内容_javascript技巧

话不多说,请看具体实现代码 //从字符串'Is this all there is'中剪去'is': var str='Is this all there is'; var subStr=new RegExp('is');//创建正则表达式对象 var result=str.replace(subStr,"");//把'is'替换为空字符串 console.log(result);//Is th all there is var subStr=new RegExp('is','i');

javascript replace(/-/g,&quot;!&quot;)替换所有指定字符

利用网页特效  str.replace(/-/g,"!")则可以全部替换掉匹配的字符(g为全局标志). <script type="text/javascript"> string.prototype.replaceall = function(reallydo, replacewith, ignorecase) { if (!regexp.prototype.isprototypeof(reallydo)) { return this.replace(