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 相关文章推荐
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
JS面向对象编程 for Cookie
Sep 19 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
jquery用data方法获取某个元素上的事件
Jun 23 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
JSONObject使用方法详解
Dec 17 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 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文件读写操作之文件写入代码
2011/01/13 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
js查错流程归纳
2012/05/04 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
jQuery实现菜单栏导航效果
2017/08/15 jQuery
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python多线程编程(五):死锁的形成
2015/04/05 Python
判断网页编码的方法python版
2016/08/12 Python
windows下python和pip安装教程
2018/05/25 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
学期自我评价
2014/01/27 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
医德考评自我评价
2014/09/14 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
安全责任书
2015/01/29 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
行政前台岗位职责
2015/04/16 职场文书