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 相关文章推荐
初窥JQuery(二)事件机制(2)
Dec 06 Javascript
扩展JavaScript功能的正确方法(译文)
Apr 12 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
用vue和node写的简易购物车实现
Apr 25 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
JS实现元素上下左右移动效果
Oct 18 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 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
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
python使用turtle库绘制时钟
2020/03/25 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
上海方立数码笔试题
2013/10/18 面试题
公司晚会主持词
2014/03/22 职场文书
环保标语口号
2014/06/13 职场文书
建筑节能汇报材料
2014/08/22 职场文书
工作后的感想
2015/08/07 职场文书
团支部书记竞选稿
2015/11/21 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS