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 相关文章推荐
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
Jun 10 Javascript
jquery实现两个图片渐变切换效果的方法
Jun 25 Javascript
vue双向绑定的简单实现
Dec 22 Javascript
phantomjs导出html到pdf的方法总结
Oct 19 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 Javascript
JS Object构造函数之Object.freeze
Apr 28 Javascript
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
分享php邮件管理器源码
2016/01/06 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python列表append和+的区别浅析
2015/02/02 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
园长自我鉴定
2013/10/06 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
项目合作协议书
2014/04/16 职场文书
单位未婚证明范本
2014/11/25 职场文书
2014司机年终工作总结
2014/12/05 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL