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实现的论坛常用的运行代码的效果
Jul 15 Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
Vue.js 2.0中select级联下拉框实例
Mar 06 Javascript
JS实现简单拖拽效果
Jun 21 Javascript
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
php数组指针操作详解
2017/02/14 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
Python中的装饰器用法详解
2015/01/14 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
教师自我反思材料
2014/02/14 职场文书
班级德育工作实施方案
2014/02/21 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
运动会广播稿300字
2015/08/19 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis