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 计算当天是本年本月的第几周
Mar 22 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
vue项目如何刷新当前页面的方法
May 18 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 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
第九节 绑定 [9]
2006/10/09 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
PHP反射学习入门示例
2019/06/14 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python实现线程池的方法
2015/06/30 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
django使用JWT保存用户登录信息
2020/04/22 Python
python 常见的排序算法实现汇总
2020/08/21 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
销售总监工作职责
2013/11/21 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang
Python+DeOldify实现老照片上色功能
2022/06/21 Python
Hive日期格式转换方法总结
2022/06/25 数据库