JS 中 replace 和 replaceAll 的区别?

本文详细介绍了JavaScript中replace和replaceAll方法的区别及使用方法。这两种方法都用于在字符串中替换匹配项,但replace仅替换第一个匹配项,而replaceAll则替换所有匹配项。此外,两者均可接受正则表达式作为匹配模式,并允许通过函数定义复杂的替换规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法解释

两种方法都返回一个新字符串,原始字符串保持不变。并且改方法可以传两个参数。

参数一:pattern。 pattern 可以是一个 字符串 或一个 正则表达式

参数二:replacement。 replacement 可以是一个字符串或一个在每次匹配被调用的函数。

下面以参数一 pattern 传参类型不同来做区分。

1. 当 pattern 是字符串,有区别。

当 pattern 是字符串时,replace 只替换匹配到的第一个位置,replaceAll 会替换每一个匹配到的地方。代码如下:

var value = '123-234-234-234'
var pattern = '-'
console.log('replace: ' + value.replace(pattern, '/'))   
console.log('replaceAll: ' + value.replaceAll(pattern, '/'))

// 输出:
// replace: 123/234-234-234
// replaceAll: 123/234/234/234

2. 当 pattern 都是正则表达式时,没有区别。

var value = '123-234-234-234'
var pattern = /-/g
console.log('replace: ' + value.replace(pattern, '/'))   
console.log('replaceAll: ' + value.replaceAll(pattern, '/'))

// 输出:
// replace: 123/234/234/234
// replaceAll: 123/234/234/234

除此之外,两个函数的第二个参数都可以传入一个函数,用来自定义替换规则。

var value = '123-234-234-234'
var pattern = '-'
value.replace(pattern, (item, index) => {
	// item 替换元素,index 替换元素的下标
	console.log(item, index)
	return '/'
})

// 输出:
// - 3
// 123/234-234-234
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值