js使用正则实现ReplaceAll全部替换的方法


Posted in Javascript onJuly 18, 2014

JS 字符串有replace() 方法。但这个方法只会对匹配到的第一个字串替换。 如下例:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
alert(strNew);
</script>
</BODY>
</HTML>

如果要全部替换的话,JS 没有提供replaceAll这样的方法。使用正则可以达成Replace 的效果:

str.replace(/word/g,"Excel")g 的意义是:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

<HEAD>
<TITLE> New Document </TITLE>
<script>
function replaceAll(str)
{
if(str!=null)
str = str.replace(/word/g,"Excel")
return str;
}
</script>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
strNew = replaceAll(str);
alert(strNew);
</script>
</BODY>
</HTML>

以上写法有个类同的写法:

str.replace(new RegExp("word","gm"),"Excel")g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m 执行多行匹配。

除此之外,也可以添加 Stirng对象的原型方法:

String.prototype.replaceAll = function(s1,s2){ 
return this.replace(new RegExp(s1,"gm"),s2); 
}

这样就可以像使用replace 方法一样使用replaceAll了

str.replaceAll("word","Excel");总结一下, 三种方式

1. str.replace(/oldString/g,newString)

2. str.replace(new RegExp(oldString,"gm"),newString)

3. 增加String 对象原型方法 replaceAll

Javascript 相关文章推荐
判断控件是否已加载完成的代码
Feb 24 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
利用jQuery和CSS将背景图片拉伸
Oct 16 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
js实现一键复制功能
Mar 16 Javascript
js实现旋转木马效果
Mar 17 Javascript
深入理解angular2启动项目步骤
Jul 15 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 #Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 #Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 #Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 #Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 #Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 #Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
Jul 18 #Javascript
You might like
第十一节 重载 [11]
2006/10/09 PHP
php合并js请求的例子
2013/11/01 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
Python实现简单登录验证
2016/04/13 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
编程用JAVA解析XML的方式
2013/07/07 面试题
大学生活学习的自我评价
2013/12/03 职场文书
青年文明号事迹材料
2014/01/18 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
政府信息公开实施方案
2014/05/09 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
2014年转正工作总结
2014/11/08 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript