在我们平时的使用中,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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。