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脚本类
Aug 27 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 Javascript
Javascript this 的一些学习总结
Aug 31 Javascript
js创建元素(节点)示例
Jan 02 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
基于vue实现网站前台的权限管理(前后端分离实践)
Jan 13 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
JS+HTML5 canvas绘制验证码示例
Dec 05 Javascript
layui实现三级联动效果
Jul 26 Javascript
npm全局环境变量配置详解
Dec 15 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
社区(php&&mysql)六
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
解析php中curl_multi的应用
2013/07/17 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
PDO::inTransaction讲解
2019/01/28 PHP
js类 from qq
2006/11/13 Javascript
javascript StringBuilder类实现
2008/12/22 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
vuex入门最详细整理
2020/03/04 Javascript
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
大学生毕业求职信
2014/06/12 职场文书
招标保密承诺书
2015/01/20 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android