一般用法
字符串.replace('被替换的字符', 替换的字符)
如:
'abcabcabc'.replace('a', 'h') // hbcabcabc
正则表达式替换
'abcabcabc'.replace(/[a]+/g, 'h') // hbchbchbc
回调函数
'abcabcabc'.replace(/[a]+/g, () => { return 'h'}) // hbchbchbc// 1. /[(a)]+/g () 代表分组捕捉// 2. 回调参数有4个:匹配项,分组捕捉内容,捕捉项地位,原字符串
简单例子:如果有一个需要要求用户配置一个文字模板,渲染时依据接口返回内容填充数据。
// 后端返回数据var res = { year: '2021', month: '03', day: '17', a: 10, b: 9}// 文字模板var str = "${year}年${month}月${day}日,xxx零碎处于${a > b ? '失常': '异样'}状态"// 替换${...}等字符str.replace(/\${([^{}]+)}/g, (item, prop)=>{ // 针对字母类型的变量替换为实在数据 // item: 匹配的字符串 // prop:分组捕捉的须要辨认的属性字符串 var result = prop.replace(/([a-zA-Z]+)/g, (i, p)=>{ // 属性替换为理论数据 return res[p] }) // 有可能是表达式,应用eval计算其后果 return eval(result)})// "2021年3月17日,xxx零碎处于失常状态"