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 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
Jan 17 Javascript
jquery基础教程之deferred对象使用方法
Jan 22 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
详解WordPress开发中get_current_screen()函数的使用
Jan 11 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
EsLint入门学习教程
Feb 17 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
转换layUI的数据表格中的日期格式方法
Sep 19 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
微信小程序 bindtap 传参的实例代码
Feb 21 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代码
2012/09/14 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
javascript一点特殊用法
2008/05/28 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
django创建简单的页面响应实例教程
2019/09/06 Python
python之生成多层json结构的实现
2020/02/27 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
论文诚信承诺书
2014/05/23 职场文书
中文专业求职信
2014/06/20 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
react antd实现动态增减表单
2021/06/03 Javascript
Python PIL按比例裁剪图片
2022/05/11 Python