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 相关文章推荐
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
jQuery 属性选择器element[herf*='value']使用示例
Oct 20 Javascript
js函数返回多个返回值的示例代码
Nov 05 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
Jun 06 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 Javascript
javascript的this关键字详解
May 20 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
杏林同学录(五)
2006/10/09 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
python中as用法实例分析
2015/04/30 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
python处理excel绘制雷达图
2019/10/18 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
Why we need EJB
2016/10/20 面试题
预备党员思想汇报1000字
2014/10/07 职场文书
万能检讨书
2015/01/27 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
法定代表人身份证明书
2015/06/18 职场文书
安全教育培训制度
2015/08/06 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
创业计划书之家教托管
2019/09/25 职场文书