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 Prototype 对象扩展
May 15 Javascript
JS动态创建DOM元素的方法
Jun 09 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
详解JavaScript中的六种错误类型
Sep 21 Javascript
JS实现的数组去除重复数据算法小结
Nov 17 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 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
一个ftp类(ini.php)
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
10个php函数实用却不常见
2015/10/13 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
如何卸载python插件
2020/07/08 Python
python 如何设置守护进程
2020/10/29 Python
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
排查整治工作方案
2014/06/09 职场文书
会议通知范文
2015/04/15 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
golang 实用库gotable的具体使用
2021/07/01 Golang
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android