JS的replace方法介绍


Posted in Javascript onOctober 20, 2012

该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
下文展示了几种javascript正则表示式的repalce方式,有些方式我们很少在别的地方看到,如第二种和第三方中方法。

//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url 
var reg=new RegExp("(https://3water.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); 
var url="https://3water.com/BookReader/1017141,20361055.aspx"; 
//方式一,最简单常用的方式 
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3"); 
alert(rep); 
//方式二 ,采用固定参数的回调函数 
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3}); 
alert(rep2); 
//方式三,采用非固定参数的回调函数 
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];}); 
alert(rep3); 
//方法四 
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数 
var bookId; 
var chapterId; 
function capText() 
{ 
var args=arguments; 
bookId=args[2]; 
chapterId=args[3]; 
return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3]; 
} 
var rep4=url.replace(reg,capText); 
alert(rep4); 
alert(bookId); 
alert(chapterId); 
//除了使用replace方法获取正则表示式的分组外,还可以使用test ,exec方法获取分组,只是手法有所不同而已 
var reg2=new RegExp("(https://3water.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); 
var m=reg2.exec("https://3water.com/BookReader/1017141,20361055.aspx"); 
var s=""; 
//获取所有的分组 
for (i = 0; i < m.length; i++) { 
s = s + m[i] + "\n"; 
} 
alert(s); 
bookId=m[2]; 
chapterId=m[3]; 
alert(bookId); 
alert(chapterId); 
//使用test方法获取分组 
var reg3=new RegExp("(https://3water.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); 
reg3.test("https://3water.com/BookReader/1017141,20361055.aspx"); 
//获取三个分组 
alert(RegExp.$1); 
alert(RegExp.$2); 
alert(RegExp.$3); 
var str="www.baidu.com"; 
//str.format("好","q") 
str.replace(new RegExp("(\\.)(bai)du","g"),function(){ 
for(var i=0;i<arguments.length;i++) 
{ 
document.write(arguments[i]+"<br/>"); 
} 
document.write("-------------------------------------------------<br/>"); 
}); 
两个例子(证明,replace传入正则参数和字符传参数结果不同): 
alert("123".replace("1",function(){var un;return un;})); //弹出undefined23 
alert("123".replace(new RegExp("1"),function(){var un;return un;})); //弹出23
Javascript 相关文章推荐
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
Jan 09 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
Jul 28 Javascript
angularJS Provider、factory、service详解及实例代码
Sep 21 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
JS操作字符串转数字的常见方法示例
Oct 29 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 Javascript
npm全局环境变量配置详解
Dec 15 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 #Javascript
JavaScript 用cloneNode方法克隆节点的代码
Oct 15 #Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 #Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
Oct 15 #Javascript
JS自动缩小超出大小的图片
Oct 12 #Javascript
文本框input聚焦失焦样式实现代码
Oct 12 #Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 #Javascript
You might like
咖啡与水的关系
2021/03/03 冲泡冲煮
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
会计应届生的自荐信
2013/12/13 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
蔬菜基地的创业计划书
2014/01/06 职场文书
教师业务培训方案
2014/05/01 职场文书
冬季安全检查方案
2014/05/23 职场文书
农村文化建设标语
2014/10/07 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS