js replace 与replaceall实例用法详解


Posted in Javascript onAugust 03, 2013

stringObj.replace(rgExp, replaceText)

参数

stringObj

必选项。要执行该替换的 String 对象或字符串文字。该字符串不会被 replace 方法修改。

rgExp

必选项。为包含正则表达式模式或可用标志的正则表达式对象。也可以是 String 对象或文字。如果 rgExp 不是正则表达式对象,它将被转换为字符串,并进行精确的查找;不要尝试将字符串转化为正则表达式。

replaceText

必选项。是一个String 对象或字符串文字,对于stringObj 中每个匹配 rgExp 中的位置都用该对象所包含的文字加以替换。在 Jscript 5.5 或更新版本中,replaceText 参数也可以是返回替换文本的函数。

说明

replace 方法的结果是一个完成了指定替换的 stringObj 对象的复制。

下面任意的匹配变量都能用来识别最新的匹配以及找出匹配的字符串。在需要动态决定替换字符串的文本替换中可以使用匹配变量。

字符 含义

$$ $ (JScript 5.5 或更新版本)

$& 指定与整个模式匹配的 stringObj 的部分。 (JScript 5.5 或更新版本)

$` 指定由 $& 描述的匹配之前的 stringObj 部分。 (JScript 5.5 或更新版本)

$' 指定由 $& 描述的匹配之后的 stringObj 部分。 (JScript 5.5 或更新版本)

$n 捕获的第 n 个子匹配,此处 n 为从1到9的十进制一位数。 (JScript 5.5 或更新版本)

$nn 捕获的第 nn 个子匹配,此处 nn 为从01到99的十进制两位数。 (JScript 5.5 或更新版本)

如果 replaceText 为函数,对于每一个匹配的子字符串,调用该函数时带有下面的 m+3 个参数,此处 m 是在 rgExp 中捕获的左括弧的个数。第一个参数是匹配的子字符串。接下来的 m 个参数是查找中捕获的全部结果。第 m+2 个参数是在 stringObj 中匹配出现的偏移量,而第 m+3 个参数为 stringObj。结果为将每一匹配的子字符串替换为函数调用的相应返回值的字符串值。

Replace 方法更新全局 RegExp 对象的属性。

示例

下面的示例演示了 replace 方法将第一次出现的单词 "The" 替换为单词 "A" 的用法。

function ReplaceDemo(){

var r, re; // 声明变量。

var ss = "The man hit the ball with the bat.n";

ss += "while the fielder caught the ball with the glove.";

re = /The/g; // 创建正则表达式模式。

r = ss.replace(re, "A"); // 用 "A" 替换 "The"。

return(r); // 返回替换后的字符串。

}

另外, replace 方法也可以替换模式中的子表达式。 下面的范例演示了交换字符串中的每一对单词:

function ReplaceDemo(){

var r, re; // 声明变量。

var ss = "The rain in Spain falls mainly in the plain.";

re = /(S+)(s+)(S+)/g; // 创建正则表达式模式。

r = ss.replace(re, "$3$2$1"); // 交换每一对单词。

return(r); // 返回结果字符串。

}

下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为 replaceText。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "F" (例如 "Water boils at 212")。
function f2c(s) {
var test = /(d+(.d*)?)Fb/g; // 初始化模式。

return(s.replace

(test,

function($0,$1,$2) {

return((($1-32) * 5/9) + "C");

}

)

);

}

document.write(f2c("Water freezes at 32F and boils at 212F."));

js居然不提供replaceAll方法,用for循环又有效率问题,给你一个正则表达式的解决方案

js 代码

String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);

}

方法: string.replace(new RegExp(oldString,"gm"),newString))

gm g=global, m=multiLine , 大致上方法就是这样的,可以实现替换全部指定字串

另一个简单的验证JS的方法:

在浏览器地址栏输入

javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad"))

这样比较省事 ;) ,不知道多行的会不会很方便

orgStr.replace(new RegExp(findStr, 'g'), replaceStr)

应该就可以替换所有的了

如果不用正则表达式

orgStr.replace(findStr, replaceStr)只能替换第一个

Javascript 相关文章推荐
json 入门基础教程 推荐
Oct 31 Javascript
面向对象Javascript核心支持代码分享
May 23 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
jQuery满意度星级评价插件特效代码分享
Aug 19 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 Javascript
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
react 创建单例组件的方法
Apr 26 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
vue-router实现嵌套路由的讲解
Jan 19 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
jquery动态加载js三种方法实例
Aug 03 #Javascript
js innerHTML 改变div内容的方法
Aug 03 #Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 #Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 #Javascript
jQuery function的正确书写方法
Aug 02 #Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 #Javascript
js 固定悬浮效果实现思路代码
Aug 02 #Javascript
You might like
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php的常量和变量实例详解
2017/06/27 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JS获取父节点方法
2009/08/20 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
js动态引入的四种方法
2018/05/05 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
python类装饰器用法实例
2015/06/04 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
浅析python协程相关概念
2018/01/20 Python
单链表反转python实现代码示例
2018/02/08 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
员工拾金不昧表扬信
2014/01/09 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
SQL语句多表联合查询的方法示例
2022/04/18 MySQL