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 相关文章推荐
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
DOM 高级编程
May 06 Javascript
一看就懂:jsonp详解
Jun 01 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
jQuery中值得注意的trigger方法浅析
Dec 12 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
express+vue+mongodb+session 实现注册登录功能
Dec 06 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
Sep 24 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
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扩展编写点滴 技巧收集
2010/03/09 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
2018/01/31 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
python遍历类中所有成员的方法
2015/03/18 Python
python版大富翁源代码分享
2018/11/19 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
荷叶圆圆教学反思
2014/02/01 职场文书
烹调加工管理制度
2014/02/04 职场文书
松材线虫病防治方案
2014/06/15 职场文书
历史学专业求职信
2014/06/19 职场文书
学校教研活动总结
2014/07/02 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
应届生简历自我评价
2015/03/11 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
七年级话题作文之执着
2019/11/19 职场文书
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏