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


Posted in Javascript onJune 16, 2016

本文实例总结了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 is
alert(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];
   }
   );
}
Javascript 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
Javascript 面向对象之重载
May 04 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
web基于浏览器的本地存储方法应用
Nov 27 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
JS解析后台返回的JSON格式数据实例
Aug 06 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
layui插件表单验证提交触发提交的例子
Sep 09 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 #Javascript
jQuery插件实现图片轮播特效
Jun 16 #Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 #Javascript
js学习阶段总结(必看篇)
Jun 16 #Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 #Javascript
jQuery获取剪贴板内容的方法
Jun 16 #Javascript
javascript作用域、作用域链(菜鸟必看)
Jun 16 #Javascript
You might like
php daodb插入、更新与删除数据
2009/03/19 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Python生成器(Generator)详解
2015/04/13 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
初中考试作弊检讨书
2014/02/01 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
房产委托公证书
2014/04/08 职场文书
目标责任书范文
2014/04/14 职场文书
大学生励志演讲稿
2014/04/25 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
限期整改通知书
2015/04/22 职场文书
2015学校年度工作总结
2015/05/11 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书