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 相关文章推荐
基于jquery的让页面控件不可用的实现代码
Apr 27 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
JavaScript中Null与Undefined的区别解析
Jun 30 Javascript
Javascript实现单例模式
Jan 24 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
vue.js学习笔记之绑定style样式和class列表
Oct 31 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 jQuery
详解Vue 全局引入bass.scss 处理方案
Mar 26 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
解决removeEventListener 无法清除监听的问题
Oct 30 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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP的PDO连接讲解
2019/01/24 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Track Image Loading效果代码分析
2007/08/13 Javascript
JS中操作JSON总结
2020/12/06 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
多版本Python共存的配置方法
2017/05/22 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python getopt模块使用实例解析
2019/12/18 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
淘宝活动策划方案
2014/02/06 职场文书
会计专业求职信范文
2014/03/16 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python