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实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
Oct 15 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
jQuery绑定事件的几种实现方式
May 09 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
javascript实现下拉菜单效果
Feb 09 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 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP闭包实例解析
2014/09/08 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
numpy中索引和切片详解
2017/12/15 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
python如何求100以内的素数
2020/05/27 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
python3.7调试的实例方法
2020/07/21 Python
一份文言文检讨书
2014/09/13 职场文书
技术股份合作协议书
2014/10/05 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书