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 相关文章推荐
jquery+json实现的搜索加分页效果
Mar 31 Javascript
理解Javascript_14_函数形式参数与arguments
Oct 20 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 Javascript
jquery text(),val(),html()方法区别总结
Nov 04 Javascript
js中的json对象详细介绍
Oct 29 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
在JavaScript中实现链式调用的实现
Dec 24 Javascript
js this 绑定机制深入详解
Apr 30 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
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
网上应用的一个不错common.js脚本
2007/08/08 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
windows下更新npm和node的方法
2017/11/30 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
python 域名分析工具实现代码
2009/07/15 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
pytorch之添加BN的实现
2020/01/06 Python
python爬虫如何解决图片验证码
2021/02/14 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
中学生打架检讨书
2014/02/10 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
工作简报怎么写
2015/07/21 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js