replace方法使用回顾

在我们平时的使用中,replace通常是用来替换字符串。但是在替换的时候,通常都是将某个匹配到的字符替换为特定的字符。

记录一下一些特殊的用法,加深印象。

1 自定义字符串替换

var rep = /[A-Z]/g
var testString = 'aaaBBBccc'
testString.replace(rep,'DDD')
// aaaDDDDDDDDDccc

2 replace(rep,(val)=>{...}),在replace做替换的时候,第二个参数可以接收一个方法,该方法的参数为replace匹配到的结果。

列如:backgroundColor => background-color 通过我们的第二种方式可写为:

var rep = /[A-Z]/g
'backgroundColor'.replace(rep,(val)=>'-'+val.toLowerCase())
// background-color

3 \$1 到 \$99 的用法
在replace方法中,\$1到\$99表示正则中的第一个小表达式到第99个小表达式相匹配的内容。

列如:字符串 '123abc'

'123abc'.replace(/(123)(abc)/,'$2$1')
//abc123
//$1 代表 123 
//$2 代表 abc

4 \$&的使用方法

$&表示和表达式匹配的字符相等,列如:

'aaabbbC'.replace(/[A-C]/,'_$&')
//aaabbb_C

5 \$`位于匹配字串左侧文本
这个地方的左侧,表示匹配到的字符左边整个一串,不是单个字符。
列如:

var str = 'aaaCbbb'
var rep = /[A-Z]/
str.replace(rep,'_$`')
//aaa_aaabbb

6 \$'位于匹配字串右侧文本
右侧和左侧同理。列如

var str = 'aaaCbbb'
var rep = /[A-Z]/
str.replace(rep,"_$'")
//aaa_bbbbbb

你可能感兴趣的:(前端,javascript,replace)