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 相关文章推荐
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 Javascript
js控制table合并具体实现
Feb 20 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
微信小程序配置服务器提示验证token失败的解决方法
Apr 03 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 Javascript
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
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
javascript生成大小写字母
2015/07/03 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python障碍式期权定价公式
2019/07/19 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
大学生入党思想汇报
2014/01/14 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
中学生操行评语大全
2014/04/24 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
离婚协议书格式
2014/11/21 职场文书
中秋客户感谢信
2015/01/22 职场文书
大学生实习推荐信
2015/03/27 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
企业法人代表证明书
2015/06/18 职场文书
信息技术国培研修日志
2015/11/13 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL