您当前的位置: 首页 >  Java

liaowenxiong

暂无认证

  • 2浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JS(JavaScript) 使用捕获性分组处理文本模板,最终生成完整字符串

liaowenxiong 发布时间:2021-07-08 17:24:02 ,浏览量:2

var tmp = "An ${a} a ${b} keeps the ${c} away";

// obj 是 json 对象
var obj = {
	a:"apple",
	b:"day",
	c:"doctor"
};

/**
*@descript 声明定义一个函数 tmpl,该函数将文本模板对应的变量替换后返回
*
*/

function tmpl(t,o){
	/*
	*replace 函数匹配到 1 个字符串后传给函数,函数返回一个替换的字符串,
	*然后把匹配到的内容替换掉。接着重复上述步骤直到正则引擎指针到源字符串
	*结尾才停止匹配,然后把替换后的字符串返回
	*/
	return t.replace(/\${(.)}/g,function(m,p){ // m 是正则式匹配到的文本,例如,${a};p 引用捕获性分组 (.) 匹配到的内容,例如,"a"
		console.log('m:'+m+' p:'+p);
		return o[p]; // o 是一个 json 对象,获取 o 对象的属性值并返回,例如,p = "a",则获取 o 对象的属性 a 的值
	});
}
// 打印输出函数 tmpl 返回的内容
console.log(tmpl(tmp,obj));

上述功能使用ES6可这么实现:

var obj = {
 a:"apple",
 b:"day",
 c:"doctor"
};
with(obj){
 console.log(`An ${a} a ${b} keeps the ${c} away`);
}
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0408s