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 相关文章推荐
表单元素事件 (Form Element Events)
Jul 17 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
js异步上传多张图片插件的使用方法
Oct 22 Javascript
详解Vue中使用Axios拦截器
Apr 22 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
JS原型和原型链原理与用法实例详解
Feb 05 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
vue中的计算属性和侦听属性
Nov 06 Javascript
JavaScript 实现继承的几种方式
Feb 19 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
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
Prototype源码浅析 Number部分
2012/01/16 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
Python脚本暴力破解栅栏密码
2015/10/19 Python
老生常谈Python基础之字符编码
2017/06/14 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Keras 使用 Lambda层详解
2020/06/10 Python
浅谈python出错时traceback的解读
2020/07/15 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
艺术用品:Arteza
2018/11/25 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
四年大学生活的自我评价范文
2014/02/07 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
培训督导岗位职责
2015/04/10 职场文书
运动会主持词大全
2015/07/02 职场文书
八年级作文之友谊
2019/12/02 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
python中对列表的删除和添加方法详解
2022/02/24 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js