用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>

(0)

相关推荐

  • 使用正则表达式替换表情符号核心代码

    复制代码 代码如下: String a = "哇哈哈哈[em:5]aa8888[em:7]"; String r = "\\[em:(\\d+)\\]"; a = a.replaceAll(r, "$1.gif"); System.out.println(a); 打印出的结果是:5.gifaa88887.gif 大家可以尽兴发挥.

  • PHP中利用substr_replace将指定两位置之间的字符替换为*号

    复制代码 代码如下: $username = "zongzi"; echo substr_replace($username,'**','1','2');

  • IOS如何替换电话号码中间4位为"-"符号

    本文实例为大家分享了特殊字符替换电话号码中某一部分的方法,IOS利用-号替换电话号码中间四位,供大家参考,具体内容如下 一.效果图   二.代码 RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //电话号码 UILabel *telLabel = [[UILabel alloc] initWithFrame:CGRe

  • C#将隐私信息(银行账户,身份证号码)中间部分特殊字符替换成*

    大家在银行交易某些业务时,都可以看到无论是身份证.银行账号中间部分都是用*号替换的,下面小编把代码整理如下: /// <summary> /// 将传入的字符串中间部分字符替换成特殊字符 /// </summary> /// <param name="value">需要替换的字符串</param> /// <param name="startLen">前保留长度</param> /// <

  • IOS代码笔记之文字走马灯效果

    本文实例为大家分享了IOS文字走马灯效果具体实现代码,供大家参考,具体内容如下 一.效果图 二.工程图  三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end RootViewController.m #import "RootViewController.h" #import "UXLabel.h"

  • IOS代码笔记之下拉选项cell

    本文介绍了IOS下拉选项cell的使用方法,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> //加入头文件 #import "ComboBoxView.h" @interface RootViewController : UIViewController { ComboBoxView *_comboBox; } @end RootViewController.m #impo

  • PHP的substr_replace将指定两位置之间的字符替换为*号

    复制代码 代码如下: $username = "zongzi"; echo substr_replace($username,'**','1','2'); 定义和用法 substr_replace() 函数把字符串的一部分替换为另一个字符串. 语法substr_replace(string,replacement,start,length) 参数 描述 string 必需.规定要检查的字符串. replacement 必需.规定要插入的字符串. start 必需.规定在字符串的何处开始

  • js正则实现的密码框简单制作,还可以替换成自己想用得符号

    密码框简单制作,还可以替换成自己想用得符号. <style type="text/css"> #c { position: relative; } #a { position: absolute; left: 0; top: 0; font-size: 12px; font-family: 宋体; } #b { position: absolute; left: 0; top: 0; font-size: 12px; font-family: 宋体; -moz-opacit

  • IOS代码笔记之下拉菜单效果

    本文实例为大家分享了ios下拉菜单的具体代码,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end RootViewController.m #import "RootViewController.h" #import "NIDropDown.h" @i

  • IOS代码笔记UIView的placeholder的效果

    本文实例为大家分享了IOS占位符效果,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UITextViewDelegate> { UITextView *psTextView; UILabel *pslabel; } @end RootViewController.m #import

随机推荐