js中关于String对象的replace使用详解


Posted in Javascript onMay 24, 2011

今天在读Qwrap的源码stringH时里边有个

format: function(s, arg0) { 
var args = arguments; 
return s.replace(/\{(\d+)\}/ig, function(a, b) { 
return args[(b | 0) + 1] || ''; 
}); 
}

它的使用方式是:
alert(format("{0} love {1}.",'I','You'))//I love you
format的实现方式主要是用到了String对象的replace方法:

replace:返回根据正则表达式进行文字替换后的字符串的复制。

1.平时常用到的replace

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); // 返回替换后的字符串。 
} 
ReplaceDemo(); //A man hit the ball with the bat. while the fielder caught the ball with the glove.

2.替换模式中的子表达式
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); // 返回结果字符串。 
} 
document.write(ReplaceDemo()); //rain The Spain in mainly falls the in plain.

匹配正则的项:The rain,in Spain,falls mainly,in the;执行ss.replace(re, "$3$2$1")操作,完成单词位置的交换

$1匹配的是第一个(\S+)

$2匹配的是(\s+)

$3匹配的是第二个(\S+)

3.replace第二个参数是function时

function f2c(s){ 
var test = /(\d+(\.\d*)?)F\b/g; // 初始化模式。 
return(s.replace(test,function($0,$1,$2){return((($1-32)) + "C");})); 
} 
f2c("Water boils at 212F 3F .2F 2.2F .2");//Water boils at 180C -29C .-30C -29.8C .2

$0匹配 212F,3F,.2F,2.2F
$1匹配 212,3,.2,2.2
$2匹配 最后一个.2
Javascript 相关文章推荐
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
javascript 判断中文字符长度的函数代码
Aug 27 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
Nov 25 Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 Javascript
angular使用bootstrap方法手动启动的实例代码
Jul 18 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 #Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
May 24 #Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 #Javascript
三级下拉菜单的js实现代码
May 23 #Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 #Javascript
在Javascript里访问SharePoint列表数据的实现方法
May 22 #Javascript
SharePoint 客户端对象模型 (一) ECMA Script
May 22 #Javascript
You might like
域名和cookie问题(域名后缀)
2012/10/10 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python3判断IP地址的方法
2021/03/04 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
教师对学生的寄语
2014/04/03 职场文书
学习之星事迹材料
2014/05/17 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
三八妇女节寄语
2015/02/27 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
《迟到》教学反思
2016/02/24 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
python脚本框架webpy的url映射详解
2021/11/20 Python