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实现图片翻书效果示例代码
Sep 09 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
jquery通过ajax加载一段文本内容的方法
Jan 15 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
Mar 26 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
如何通过shell脚本自动生成vue文件详解
Sep 10 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
php google或baidu分页代码
2009/11/26 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
学习ExtJS table布局
2009/10/08 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python实现canny边缘检测
2020/09/14 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
企业授权委托书范本
2014/04/02 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
优秀团队申报材料
2014/12/26 职场文书
检讨书范文500字
2015/01/28 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
公司前台接待岗位职责
2015/04/03 职场文书