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 相关文章推荐
Js的MessageBox
Dec 03 Javascript
javascript document.compatMode兼容性
Feb 23 Javascript
js 处理URL实用技巧
Nov 23 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
Sep 04 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
Oct 17 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
JavaScript html5利用FileReader实现上传功能
Mar 27 Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
详解Vue依赖收集引发的问题
Apr 22 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
PHP与javascript的两种交互方式
2006/10/09 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
JS 建立对象的方法
2007/04/21 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
JS获取动态添加元素的方法详解
2019/07/31 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
websocket+sockjs+stompjs详解及实例代码
2018/11/30 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
如何做好总经理助理
2013/11/12 职场文书
高中化学教学反思
2014/01/13 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
迟到检讨书1000字
2014/01/15 职场文书
运动会邀请函范文
2014/02/06 职场文书
一年级语文教学反思
2014/02/13 职场文书
《匆匆》教学反思
2014/02/22 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
商铺租赁意向书
2014/04/01 职场文书
2015年信访工作总结
2015/04/07 职场文书
校长一岗双责责任书
2015/05/09 职场文书
指导老师鉴定意见
2015/06/05 职场文书