跳到主要内容

灵活使用replace 方法

语法:​

text
str.replace(regexp|substr, newSubStr|function)

参数​

  • regexp (pattern)

    一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。

  • substr (pattern)

    一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。

  • newSubStr (replacement)

    用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。

  • function (replacement)

    一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。

返回值​

  • 一个部分或全部匹配由替代模式所取代的新的字符串。

使用字符串作为参数​

字符替换文本
$1、$2、...、$99与 regexp 中的第 1 到第 99 个替换字符串为分组1到99捕获的文本
$&与 regexp 相匹配的子串。
$`位于匹配子串左侧的文本。
$'位于匹配子串右侧的文本。
$$插入一个 "$"。

例子1 (应用场景:设置隐藏手机号中间四位)​

js
//应用场景:设置隐藏手机号中间四位
//替换字符串$1...$99表示分组1到分组99捕获到的文本
var reg = /^(\d{3})\d{4}(\d{4})$/
var str = '15914970415'
console.log(str.replace(reg,'$1****$2'))

例子2 (yyyy-mm-dd格式,替换成mm/dd/yyyy)​

js
//把yyyy-mm-dd格式,替换成mm/dd/yyyy
var reg = /^(\d{4})\D(\d{2})\D(\d{2})$/
var str = "2017-06-26"
var result = str.replace(reg,'$2/$3/$1')
console.log(result)

例子3 提取某字符串中的字符​

text
'xxxxx_name_age'.replace(/(.*)_(name.*)_(.*)/,'$2')
=>name
'xxxxx_name_age'.replace(/(.*)_(name.*)_(.*)/,'$3')
=>age