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 event使用方法详解
Apr 28 Javascript
Javascript 学习书 推荐
Jun 13 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
Apr 07 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
React key值的作用和使用详解
Aug 23 Javascript
javascript json字符串到json对象转义问题
Jan 22 Javascript
javascript刷新父页面方法汇总详解
Oct 10 Javascript
简单了解JS打开url的方法
Feb 21 Javascript
实例讲解React 组件生命周期
Jul 08 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编写的导航条程序
2006/10/09 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
jquery对表单操作2
2011/04/06 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
对python中的pop函数和append函数详解
2018/05/04 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
Otel.com:折扣酒店预订
2017/08/24 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
护理职业生涯规划书
2014/01/24 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
党支部公开承诺书
2014/03/28 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android