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 相关文章推荐
Js nodeType 属性全面解析
Nov 14 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
Aug 01 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
elementui实现预览图片组件二次封装
Dec 29 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 XML操作类DOMDocument
2009/12/16 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python的一些用法分享
2012/10/07 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
综合素质的自我鉴定
2013/10/07 职场文书
有关环保的标语
2014/06/13 职场文书
2014年检验科工作总结
2014/11/22 职场文书
理想国读书笔记
2015/06/25 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书