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编程起步(第五课)
Jan 10 Javascript
JavaScript 继承详解(三)
Jul 13 Javascript
比较详细的关于javascript 解析json的代码
Dec 16 Javascript
node.js中的http.response.write方法使用说明
Dec 14 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
JavaScript实现HTML导航栏下拉菜单
Nov 25 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 中文字符串首字母的获取函数分享
2013/11/04 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
详解python 内存优化
2020/08/17 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
python3 kubernetes api的使用示例
2021/01/12 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
单位门卫岗位职责
2013/12/20 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
美容院营销方案
2014/03/05 职场文书
金融专业求职信
2014/08/05 职场文书
单位委托函范文
2015/01/29 职场文书
辞职信标准格式
2015/02/27 职场文书
植树节新闻稿
2015/07/17 职场文书
考研经验交流会策划书
2015/11/02 职场文书
党员干部学习心得体会
2016/01/23 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
MySQL如何解决幻读问题
2021/08/07 MySQL