replace
概要Description
签名
s.replace(pattern: RegExp | string, replacement: string | Replacer): string type Replacer = function(match: string, groups...: string[], offset: number, originalString: string): string
功能
在字符串 s 中 使用 正则表达式 pattern 查找匹配项,或者 使用 字符串 pattern 查找匹配项
之后将匹配的结果 替换为 replacement 字符串,或者 使用 replacement 函数 对匹配项进行定制化转换
广告
案例Examples
正常情况
替换第一个
使用 字符串作为 pattern 时,只会替换 第一个出现的匹配项
1 2 =s = 'ZZAX!';result = s.replace('Z', 'z');'zZAX!'
替换全部
使用 正则表达式作为 pattern 并且使用 g 标签时,会替换所有匹配项
1 2 =s = 'ZZAX!';result = s.replace(/Z/g, 'z');'zzAX!'
string 作为 replacement 参数
特殊字符表格
可在 replacement 内使用以下特殊字符达到特效
符号 | 意义 |
---|---|
$$ | 等效于 $ |
$& | 等效于 被匹配的字符串 |
$` | 等效于 被匹配的字符串的左边的一个字符 |
$' | 等效于 被匹配的字符串的右边的一个字符 |
$n | 等效于 第 n 个 正则表达式匹配小组 |
案例
1 2 =s = '[!!!]';result = s.replace('!!!', "-$`-$&-$'-")'[-[-!!!-]-]'
Replacer 函数 作为 replacement 参数
函数类型
type Replacer = function(match: string, groups...: string[], offset: number, originalString: string): string
其中
参数 | 意义 |
---|---|
match | 等效于 被匹配的字符串 |
groups | 之类会出现很多参数,分别是每一个 正则表达式匹配小组 |
offset | 匹配的字符串 最左侧的字符 在 原始字符串 的 位置索引 |
originalString | 原始 字符串 |
案例
1 2 3 4 5 6 7 8 9 < < < < <s = '暗中观察 [哈哈]';result = s.replace(/\[([^\]]+)\]/g, function(match, group1, offset, originalString) { console.log(match); console.log(group1); console.log(offset); console.log(originalString); return '😀';})console.log('result: ' + result);[哈哈]哈哈5暗中观察 [哈哈]result: 暗中观察 😀
广告