本文实例总结了javascript的replace方法结合正则使用方法。分享给大家供大家参考,具体如下:
replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个正则表达式匹配的字符串
例子一:直接使用repalce替换
var stringObj="终古人民共和国,终古人民";//替换错别字“终古”为“中国”//并返回替换后的新字符//原字符串stringObj的值没有改变var newstr=stringObj.replace("终古","中国");//中国人民共和国,终古人民alert(newstr);
例子二:使用正则表达式,全部替换
var str="终古人民共和国,终古人民";var newstr=str.replace(/(终古)/g,"中国");//中国人民共和国,中国人民alert(newstr);
等价于
var reg=new RegExp("终古","g"); //创建正则RegExp对象var stringObj="终古人民共和国,终古人民";var newstr=stringObj.replace(reg,"中国");alert(newstr);
例子三:正则表达式,变量匹配
var resource="终古";var target="中国";var reg=new RegExp(resource,"g"); //创建正则RegExp对象var stringObj="终古人民共和国,终古人民";var newstr=stringObj.replace(reg,target);alert(newstr);
例子四:正则分组匹配
var strM = "javascript is a good script language";//$1匹配的是javascript,$2匹配的是is//最终返回的值是"javascript is fun. it is" + strM//即javascript is 被替换为 javascript is fun. it isalert(strM.replace(/(javascript)/s*(is)/g,"$1 $2 fun. it $2"));
例子五:使用回调函数做详细处理
var name="aaa bbb ccc";//name字符串去匹配//b/w+/b/g表达式,结果有三个――aaa,bbb,ccc;每个结果执行function里面的方法var uw = name.replace(//b/w+/b/g,function(word){ //word是匹配的字符串 alert(word); return word.substring(0,1).toUpperCase()+word.substring(1);});alert(uw);
例子六:比较生僻的写法
var reg=new RegExp("(http://www.qidian.com/BookReader/)(//d+),(//d+).aspx","gmi");var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";//方式一,最简单常用的方式var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");alert(rep);//方式二 ,采用固定参数的回调函数var rep2=url.replace(reg,function(m,p1,p2,p3){ return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});alert(rep2);//方式三,采用非固定参数的回调函数var rep3=url.replace(reg,function(){ var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});alert(rep3);
function ReplaceDemo(){ var r, re; // 声明变量。 var ss = "The rain in Spain falls mainly in the plain."; // /s表示的是空格,则/S表示的是非空格,因此/(/S+)(/s+)(/S+)/g匹配的是“非空格空格非空格”的结果 //匹配的结果有The rain、in Spain、falls mainly、in the //替换后的结果有rain The、Spain in、mainly falls、the in re = /(/S+)(/s+)(/S+)/g; // 创建正则表达式模式。 //更改匹配结果之间的顺序 r = ss.replace(re, "$3$2$1"); // 交换每一对单词。 return(r); // 返回结果字符串。}alert(ReplaceDemo());
name = "Doe, John";//更改两个单词之间的顺序var temp = name.replace(/(/w+)/s*, /s*(/w+)/, "$2 $1");alert(temp);
function SDReplaceData(objStr){ return objStr.replace( /(/&|/')/g, function($0, $1) { return{ "&" : "&" , "'" : "'" }[$1]; } );}
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.VeVB.COm/regex/javascript
正则表达式在线生成工具:
http://tools.VeVB.COm/regex/create_reg
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
新闻热点
疑难解答