javascript中replace使用方法总结
1. 两个参数都为字符串的情况
1
2
3
4
5
|
var text = 'cat, bat, sat, fat' ;
// 在字符串中找到at,并将at替换为ond,只替换一次
var result = text.replace( 'at' , 'ond' );
// "cond, bat, sat, fat"
console.log(result);
|
2. 第一个参数为RegExp对象,第二个参数为字符串
我们可以发现上面这种情况只替换了第一个at,如果想要替换全部at,就必须使用RegExp对象。
1
2
3
4
5
|
var text = 'cat, bat, sat, fat' ;
// 使用/at/g 在全局中匹配at,并用ond进行替换
var result = text.replace(/at/g, 'ond' );
// cond, bond, sond, fond
console.log(result);
|
3. 考虑RegExp对象中捕获组的情况
RegExp具有9个用于存储捕获组的属性。$1, $2...$9,分别用于存储第一到九个匹配的捕获组。我们可以访问这些属性,来获取存储的值。
1
2
3
4
5
|
var text = 'cat, bat, sat, fat' ;
// 使用/(.at)/g 括号为捕获组,此时只有一个,因此所匹配的值存放在$1中
var result = text.replace(/(.at)/g, '$($1)' );
// $(cat), $(bat), $(sat), $(fat)
console.log(result);
|
4. 第二个参数为函数的情况,RegExp对象中不存在捕获组的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var text = 'cat, bat, sat, fat' ;
// 使用/at/g 匹配字符串中所有的at,并将其替换为ond,
// 函数的参数分别为:当前匹配的字符,当前匹配字符的位置,原始字符串
var result = text.replace(/at/g, function (match, pos, originalText) {
console.log(match + ' ' + pos);
return 'ond'
});
console.log(result);
// 输出
/*
at 1 dd.html:12:9
at 6 dd.html:12:9
at 11 dd.html:12:9
at 16 dd.html:12:9
cond, bond, sond, fond dd.html:16:5
*/
|
5. 第二个参数为函数的情况,RegExp对象中存在捕获组的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var text = 'cat, bat, sat, fat' ;
// 使用/(.at)/g 匹配字符串中所有的at,并将其替换为ond,
// 当正则表达式中存在捕获组时,函数的参数一次为:模式匹配项,第一个捕获组的匹配项,
// 第二个捕获组的匹配项...匹配项在字符串中的位置,原始字符串
var result = text.replace(/.(at)/g, function () {
console.log(arguments[0] + ' ' + arguments[1] + ' ' + arguments[2]);
return 'ond'
});
console.log(result);
// 输出
/*
cat at 1
bat at 6
sat at 11
fat at 16
cond, bond, sond, fond
*/
|
以上为replace方法的所有可以使用的情况,下面我们使用replace和正则表达式共同实现字符串trim方法。
1
2
3
4
5
6
7
8
9
10
11
|
( function (myFrame) {
myFrame.trim = function (str) {
// ' hello world '
return str.replace(/(^\s*)|(\s*$)/g, '' );
};
window.myFrame = myFrame;
})(window.myFrame || {});
// 测试
var str = ' hello world '
console.log(str.length); // 15
console.log(myFrame.trim(str).length); // 11
|
var n ="32121352132.15" ,
n = n.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
document.write(n);
输出32,121,352,132.15
var text = '3213216512.312';// 使用/(.at)/g 匹配字符串中所有的at,并将其替换为ond,// 当正则表达式中存在捕获组时,函数的参数一次为:模式匹配项,第一个捕获组的匹配项,// 第二个捕获组的匹配项...匹配项在字符串中的位置,原始字符串var result = text.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,function() {console.log(arguments[0] + '@ ' + arguments[1] + '@ ' + arguments[2]+ '@ ' + arguments[3]);return '$&,'});console.log(result);
输出效果:
213@ 512@ .312@ 1
216@ 512@ .312@ 4
$&,$&,$&,512.312
javascript中replace使用方法总结相关推荐
- Javascript中二进制数据处理方法
Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html
- php中使用confirm,如何使用JavaScript中的confirm()方法
confirm方法的使用:通过给元素设置confirm函数来创建一个带有确认和取消按钮的提示框,当点击确认时返回true,取消时返回false 今天将讲解JavaScript中confirm() 方法 ...
- JavaScript 中的forEach()方法
JavaScript 中的forEach方法 一.forEach()的定义和用法? 1.第一个是数组的每一项值(必选) 2.第二个是数组下标(可选) 3.第三个是原数组(可选) 4.forEach() ...
- JavaScript中的valueOf方法详解
Object.prototype.valueOf() valueOf() 方法返回指定对象的原始值. 语法 object.valueOf() 返回值 返回值为该对象的原始值. 描述 JavaScrip ...
- JavaScript中的部分函数/方法参考
目录 1.Object.defineProperty方法 2.for.for...in.for...of.forEach方法 for循环(可使用return.break等来中断循环) forEach循 ...
- javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法
JavaScript中的数组由元素列表组成.JavaScript有许多有用的内置方法来处理数组.修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法.在本教程中,我们 ...
- Javascript中的Callback方法浅析
什么是callback? 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函 ...
- javascript中常用数组方法详细讲解
javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...
- Json学习总结(1)——Java和JavaScript中使用Json方法大全
2019独角兽企业重金招聘Python工程师标准>>> 摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript ...
最新文章
- Windows XP中安装虚拟网卡microsoft loopback adapter
- 微信分享链接时,怎样才能带上带缩略图和简介?
- 消息中间件的实现方案
- linux-用户管理
- kaggle房价预测最热解析
- Asp.net发布网站
- android7.0+关闭wifi连接CA验证
- python中type与isinstance异同
- linux mysql8源码安装_linux 源码安装mysql8
- optuna 自动化调参利器
- vue项目 echarts 中国地图,vue项目 echarts中国地图点击省份显示对应它的各个市,从零开始。
- java修改头像代码_用户修改头像功能
- linux查看weblogic安装路径,linux下weblogic安装
- 组策略怎么禁用计算机管理,如何打开管理员禁用的组策略?
- java实现牛牛游戏源代码
- 软件工程导论——软件维护
- 大数据平台下的数据治理
- 云服务器搭建减少物流信息成本,摩方谈物流运输:10大措施,控制物流运输成本!...
- 安装ideaIU-2022.1.4报错问题解决办法
- HKEY_CURRNT_USER和HKEY_LOCAL_MACHINE的区别