JavaScript中replace与replaceall方法

写在前面:ES2021已经提供了 String.prototype.replaceAll 方法,因此不需要 通过 String.prototype.replace + 正则 来实现replaceAll 方法了。

replace:
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
replace(oldSubStr, newSubStr)

let str1 = 'aannkkaayyrr'
let str2 = str1.replace('aa', 'x')
// str2 = 'xnnkkaayyrr'

replaceAll
replace()方法只能替换目标字符串的第一个匹配的字符串,如果想要将目标字符串全部替换的话,JavaScript没有replaceAll方法
(注:ES2021已经提供了 String.prototype.replaceAll 方法)
因此要用正则表达式打到replaceAll的效果:
即:
replace( /oldSubStr/g , newSubStr )

let str1 = 'aannkkaayyrr'
let str2 = str1.replace(/aa/g, 'x')
// 注意:虽然'aa'是字符串,但是这里不能写成 let str2 = str1.replace(/'aa'/g, 'x')
// str2 = 'xnnkkxyyrr'

总结:
replace( /oldSubStr/g , newSubStr ) 或: replace(new RegExp(oldSubStr, ‘gm’), newSubStr)
一般在项目中,可以在公共方法中实现一个replaceAll方法,或者在String的原型对象中实现replaceAll方法:

// 定义为方法,放在公共方法文件中供大家使用
function replaceAll (str , oldSubStr, newSubStr) {
	if (str != null && oldSubStr!= null && newSubStr!= null) {
		return str.replace(new RegExp(oldSubStr, 'gm'), newSubStr)
	}
}
// 定义在String原型上
String.prototype.replace = function (oldSubStr, newSubStr) {
	return this.replace(new RegExp(oldSubStr, 'gm'), newSubStr)
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值