SOURCE

// 字符串的replace方法
// const str = 'hello world'

// 首先,字符串的replace方法返回一个新的字符串,不改变原字符串
// console.log(str.replace('o', '我'))
// console.log(str)


// 第二个参数可以使用变量

// 第二个参数是字符串时
// const newStr = str.replace('o', '$$')
// console.log(newStr)

// const newStr = str.replace('o', '左$&右')
// console.log(newStr)

// const newStr = str.replace('o', '$`')
// console.log(newStr)

// const newStr = str.replace('o', '$\'')
// console.log(newStr)

// 这里$1和$2可以理解成正则里面设置的两个匹配规则,o和d
// 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
// 这里$1代表和前面正则中第一个子表达式相匹配的文本
// const newStr = str.replace(/(o)|(d)/g, '-$1-$2')
// console.log(newStr)

// 第二个参数是函数时
// \w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'

// 如果我们要把字符串中的单词首字母大写, 可以进行如下操作
// let str = 'hello world',
// 	reg = /(\w)(\w*)/g;

// let newStr = str.replace(reg, function(match, p1, p2, offset, str) {
// 	console.log(match, p1, p2, offset, str);
// 	return p1.toUpperCase() + p2;
// });
// console.log(newStr)

// 字符串的replace方法的应用
// 假设我们有一个手机号 掩码手机号的实现
// let tel = '13194099515',
// 	res = '',
// 	tmp = '****';

// 方法1:
// res = tel.replace(/\d{4}(?=\d{4}$)/g, tmp);			// 第一个参数是正则
// console.log(res)

// 方法2: 
// res = tel.replace(/(\d{3})(\d{4})/g, '$1' + tmp);	// 第一个参数是正则
// console.log(res)

// 方法3:
// res = tel.replace(tel.slice(3, -4), tmp);			// 第一个参数是字符串
// console.log(res)

// 方法4:
// res = tel.replace(/(\d{3})(\d{4})(\d{4})/g, function(match, p1, p2, p3) {
// 	return p1 + tmp + p3;
// });
// console.log(res)

console 命令行工具 X clear

                    
>
console