js模板解析

function template(tpl, data, translation = true) {
	return tpl.replace(/{.*?}/g, function (str) {

		let res = data[str.replace(/[{}]/g, '')];

		if (res !== undefined && translation) {
			res = res.replace(/[<>]/g, function (str) {
				if (str === '<') return '&lt;';
				if (str === '>') return '&gt;';
			})
		}
		return res;

	})
}

let tpl = "<p>這是{name}的第一個{content}</p>";
let data = {
	name: 'xxxx',
	content: "<script> alert( 'mmmmmm' ); </script>"
}

let f = template(tpl, data);
console.log(f)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章