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的面向对象方法以及差别
Mar 31 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
May 24 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
Apr 06 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
Sep 17 Javascript
angular directive的简单使用总结
May 24 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
Jan 18 Javascript
webpack中如何加载静态文件的方法步骤
May 18 Javascript
Vue实现附件上传功能
May 28 Javascript
vue之封装多个组件调用同一接口的案例
Aug 11 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
解决中英文字符串长度问题函数
2007/01/16 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
详解angular element()方法使用
2017/04/08 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
Python读写unicode文件的方法
2015/07/10 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python3中布局背景颜色代码分析
2020/12/01 Python
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
遗体告别仪式答谢词
2014/01/23 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
逃课上网检讨书
2014/02/20 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
解除财产保全担保书
2014/05/20 职场文书
商业项目策划方案
2014/06/05 职场文书
房屋产权证明书
2014/10/15 职场文书
2014会计年终工作总结
2014/12/20 职场文书
培训心得体会怎么写
2016/01/25 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA