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实现tab标签浏览效果
Feb 20 Javascript
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 Javascript
更优雅的事件触发兼容
Oct 24 Javascript
php 中序列化和json使用介绍
Jul 08 Javascript
jQuery使用post方法提交数据实例
Mar 25 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
详解基于webpack搭建react运行环境
Jun 01 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
vue与bootstrap实现时间选择器的示例代码
Aug 26 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
Vue toFixed保留两位小数的3种方式
Oct 23 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
url decode problem 解决方法
2011/12/26 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python3中rank函数的用法
2019/11/27 Python
如何在python中执行另一个py文件
2020/04/30 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
护士上岗前培训自我鉴定
2014/04/20 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书