replace妙用

replace的妙用

今天在学习vue源码是看到relace的使用形式我差点都不认识了,接下来就来了解一下replace其他作用

我们平常的用法

let str = 'hello haha haha';
str = str.replace('haha','world') //hello world haha
console.log(str);

我们平常这样替换只会替换一个值

第一个参数可以接受字符串/正则表达式

第二参数可以是替换文本或者替换文本的函数

使用正则可以替换所有只需要加g 全局匹配

let str = 'hello haha haha';
str = str.replace(/haha/g,'world')
console.log(str);

讲完这么多

终于要引来我们的主角

当第二个参数为函数时每次匹配都会调用这个函数

函数传递 四 个 参 数 \color{red}{四个参数}

当匹配项没有括号是只有3个参数

1.match 匹配的内容

2.index 下标

3.原字符串

这三个参数值得注意的是 第一个参数和第二参数

可以看一下以下两个结果的区别

let str = 'hello haha haha';
		str = str.replace(/haha/g,function(match,index,str){
			console.log(match); //正则匹配项
			console.log(index); //此处是文本所以下标
			console.log(str);
		})
		console.log(str);
		

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4hj8pmC-1594987764413)(C:\Users\lin\AppData\Roaming\Typora\typora-user-images\image-20200717193540056.png)]

当匹配文本有括号时有四个参数

1.match 匹配项

2.匹配项的内容

3index 下标

3.原字符串

例如:{{msg}}将msg替换成world

let str = '{{msg}} {{person}}';
		str = str.replace(/\{\{(.*?)\}\}/g,function(match,content,index,str){
			console.log(match); //此处是正则匹配项
			console.log(content);
			console.log(index); //此处是匹配的内容
			console.log(str);
			return 'world'
		
		})
		console.log(str);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CnVxFO2P-1594987764418)(C:\Users\lin\AppData\Roaming\Typora\typora-user-images\image-20200717195335718.png)]

轻松可以把所有的模板替换掉

console.log(str);

[外链图片转存中...(img-CnVxFO2P-1594987764418)]

轻松可以把所有的模板替换掉 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值