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


Posted in Javascript onAugust 22, 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

PS:关于正则,本站还提供了2款非常简便实用的正则表达式工具供大家使用:

JavaScript正则表达式在线测试工具:
http://tools.3water.com/regex/javascript

正则表达式在线生成工具:
http://tools.3water.com/regex/create_reg

Javascript 相关文章推荐
js实现最短的XML格式化工具实例
Mar 12 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
原生JS实现跑马灯效果
Feb 20 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
May 11 Javascript
Vue中img的src属性绑定与static文件夹实例
May 18 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
JS中的一些常用的函数式编程术语
Jun 15 Javascript
微信小程序自定义联系人弹窗
May 26 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 #Javascript
js中实现多态采用和继承类似的方法
Aug 22 #Javascript
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 #Javascript
字段太多jquey快速清空表单内容方法
Aug 21 #Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 #Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 #Javascript
jQuery截取指定长度字符串代码
Aug 21 #Javascript
You might like
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php页面防重复提交方法总结
2013/11/25 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
Javascript - HTML的request类
2007/01/09 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
利用Python检测URL状态
2019/07/31 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
母亲节演讲稿
2014/05/27 职场文书
新闻学专业求职信
2014/07/28 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
2015年技术员工作总结
2015/04/10 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js