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 相关文章推荐
javascript 对象的定义方法
Jan 10 Javascript
Prototype Object对象 学习
Jul 12 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
Augularjs-起步详解
Jul 08 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
Jan 21 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
vue 插值 v-once,v-text, v-html详解
Jan 19 Javascript
js实现盒子移动动画效果
Aug 09 Javascript
解决ant Design Search无法输入内容的问题
Oct 29 Javascript
7个你应该知道的JS原生错误类型
Apr 29 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通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
详解Django通用视图中的函数包装
2015/07/21 Python
关于python写入文件自动换行的问题
2018/06/23 Python
在Python中定义一个常量的方法
2018/11/10 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
执行力心得体会
2013/12/31 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
职业生涯规划书范文
2014/03/10 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
学校2014年度工作总结
2014/12/06 职场文书
乌镇导游词
2015/02/02 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android