当前位置:Gxlcms > JavaScript > javascript的replace方法结合正则使用实例总结

javascript的replace方法结合正则使用实例总结

时间:2021-07-01 10:21:17 帮助过:7人阅读

本文实例总结了javascript的replace方法结合正则使用方法。分享给大家供大家参考,具体如下:

replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个正则表达式匹配的字符串

例子一:直接使用repalce替换

  1. var stringObj="终古人民共和国,终古人民";
  2. //替换错别字“终古”为“中国”
  3. //并返回替换后的新字符
  4. //原字符串stringObj的值没有改变
  5. var newstr=stringObj.replace("终古","中国");
  6. //中国人民共和国,终古人民
  7. alert(newstr);

例子二:使用正则表达式,全部替换

  1. var str="终古人民共和国,终古人民";
  2. var newstr=str.replace(/(终古)/g,"中国");
  3. //中国人民共和国,中国人民
  4. alert(newstr);

等价于

  1. var reg=new RegExp("终古","g"); //创建正则RegExp对象
  2. var stringObj="终古人民共和国,终古人民";
  3. var newstr=stringObj.replace(reg,"中国");
  4. alert(newstr);

例子三:正则表达式,变量匹配

  1. var resource="终古";
  2. var target="中国";
  3. var reg=new RegExp(resource,"g"); //创建正则RegExp对象
  4. var stringObj="终古人民共和国,终古人民";
  5. var newstr=stringObj.replace(reg,target);
  6. alert(newstr);

例子四:正则分组匹配

  1. var strM = "javascript is a good script language";
  2. //$1匹配的是javascript,$2匹配的是is
  3. //最终返回的值是"javascript is fun. it is" + strM
  4. //即javascript is 被替换为 javascript is fun. it is
  5. alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2"));

例子五:使用回调函数做详细处理

  1. var name="aaa bbb ccc";
  2. //name字符串去匹配/\b\w+\b/g表达式,结果有三个——aaa,bbb,ccc;每个结果执行function里面的方法
  3. var uw = name.replace(/\b\w+\b/g,function(word){
  4. //word是匹配的字符串
  5. alert(word);
  6. return word.substring(0,1).toUpperCase()+word.substring(1);
  7. });
  8. alert(uw);

例子六:比较生僻的写法

  1. var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
  2. var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";
  3. //方式一,最简单常用的方式
  4. var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
  5. alert(rep);
  6. //方式二 ,采用固定参数的回调函数
  7. var rep2=url.replace(reg,function(m,p1,p2,p3){
  8. return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3
  9. });
  10. alert(rep2);
  11. //方式三,采用非固定参数的回调函数
  12. var rep3=url.replace(reg,function(){
  13. var args=arguments;
  14. return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
  15. });
  16. alert(rep3);
  1. function ReplaceDemo(){
  2. var r, re; // 声明变量。
  3. var ss = "The rain in Spain falls mainly in the plain.";
  4. // \s表示的是空格,则\S表示的是非空格,因此/(\S+)(\s+)(\S+)/g匹配的是“非空格空格非空格”的结果
  5. //匹配的结果有The rain、in Spain、falls mainly、in the
  6. //替换后的结果有rain The、Spain in、mainly falls、the in
  7. re = /(\S+)(\s+)(\S+)/g; // 创建正则表达式模式。
  8. //更改匹配结果之间的顺序
  9. r = ss.replace(re, "$3$2$1"); // 交换每一对单词。
  10. return(r); // 返回结果字符串。
  11. }
  12. alert(ReplaceDemo());
  1. name = "Doe, John";
  2. //更改两个单词之间的顺序
  3. var temp = name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
  4. alert(temp);
  1. function SDReplaceData(objStr)
  2. {
  3. return objStr.replace( /(\&|\')/g,
  4. function($0, $1)
  5. {
  6. return{
  7. "&" : "&"
  8. , "'" : "'"
  9. }[$1];
  10. }
  11. );
  12. }

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程序设计有所帮助。

人气教程排行