灵活使用replace 方法
语法:
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 (应用场景:设置隐藏手机号中间四位)
//应用场景:设置隐藏手机号中间四位
//替换字符串$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)
//把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 提取某字符串中的字符
'xxxxx_name_age'.replace(/(.*)_(name.*)_(.*)/,'$2')
=>name
'xxxxx_name_age'.replace(/(.*)_(name.*)_(.*)/,'$3')
=>age