之前做项目遇到的DM后端刁难人的问题:连续两次格式化字符串

42 阅读1分钟
//第一次 `a${b}c`
//b 里面仍包含'a{{b}}c'形式
//实现方式 第二次用{{}}非${} 正则方可替换{{}}里面的值 第一个参数为'a{{b}}c'形式 第二个为对象格式 匹配对象键值
easyTpl(tpl, data) {
	var reg = /{{([a-zA-Z$_][a-zA-Z$_0-9\.]*)}}/g;
		return tpl.replace(reg, function(raw, key, index, str) {
		      return data[key] || raw;
	});
},