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