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 相关文章推荐
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
Feb 27 Javascript
JavaScript之自定义类型
May 04 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 Javascript
jQuery实现底部浮动窗口效果
Sep 07 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
Feb 13 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
js+canvas实现转盘效果(两个版本)
Sep 13 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
JavaScript简介
2015/02/15 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
python基于pyDes库实现des加密的方法
2017/04/29 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
wxpython绘制圆角窗体
2019/11/18 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
垃圾回收的优点和原理
2014/05/16 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
总经理助理岗位职责
2013/11/08 职场文书
供应链金融服务方案
2014/05/25 职场文书
道路施工安全责任书
2014/07/24 职场文书
意向协议书
2015/01/27 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
运动会班级前导词
2015/07/20 职场文书
大学入学感言
2015/08/01 职场文书
Python基础之Socket通信原理
2021/04/22 Python