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 相关文章推荐
js不是基础的基础
Dec 24 Javascript
PNG背景在不同浏览器下的应用
Jun 22 Javascript
JS打开新窗口的2种方式
Apr 18 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
JavaScript判断IE版本型号
Jul 27 Javascript
jquery选择器简述
Aug 31 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
Oct 12 Javascript
微信js-sdk上传与下载图片接口用法示例
Oct 12 Javascript
vue代理和跨域问题的解决
Jul 18 Javascript
element-ui表格列金额显示两位小数的方法
Aug 24 Javascript
JS实现打砖块游戏
Feb 14 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 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 csv操作类代码
2009/12/14 PHP
PHP关联链接常用代码
2012/11/05 PHP
将php数组输出html表格的方法
2014/02/24 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php中rename函数用法分析
2014/11/15 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
Python进程间通信用法实例
2015/06/04 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
关于Java finally的面试题
2016/04/27 面试题
毕业自我鉴定总结
2014/03/24 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
apache ftpserver搭建ftp服务器
2022/05/20 Servers