js使用正则实现ReplaceAll全部替换的方法


Posted in Javascript onJuly 18, 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

Javascript 相关文章推荐
基于jquery 的一个progressbar widge
Oct 29 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
跟我学习javascript的全局变量
Nov 16 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
js传值后台中文出现乱码的解决方法
Jun 30 Javascript
React复制到剪贴板的示例代码
Aug 22 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 Javascript
基于vue.js实现购物车
Jan 15 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
js canvas实现五子棋小游戏
Jan 22 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 #Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 #Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 #Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 #Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 #Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 #Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
Jul 18 #Javascript
You might like
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
php学习笔记之基础知识
2014/11/08 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
一套.net面试题及答案
2016/11/02 面试题
经济学博士求职自荐信范文
2013/11/23 职场文书
数控专业应届生求职信
2013/11/27 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
中学教师培训制度
2014/01/31 职场文书
教师节促销活动方案
2014/02/14 职场文书
2015年春节标语口号
2014/12/09 职场文书
遗愿清单观后感
2015/06/09 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
手残删除python之后的补救方法
2021/06/26 Python
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫