原生JS实现简易模版
String.prototype.renderTpl = function (obj) {
var myself = this;
var render = '';
var source = this.toString();
if (Object.prototype.toString.call(obj) === '[object Array]') {
obj.forEach(function (item) {
render += myself.renderTpl(item);
});
} else if (typeof obj === 'object') {
for (var i in obj) {
if (typeof obj[i] !== 'function') {
var patt = new RegExp("{{\\s*\\$" + i + "\\s*}}", "g");
source = source.replace(patt, obj[i]);
}
}
render += source;
}
return render;
};
var tmp = "{{ $id }}---{{ $name }}\n";
var val = [
{'id': 1, 'name': 'a'},
{'id': 2, 'name': 'b'},
{'id': 3, 'name': 'c'}
];
console.log(tmp.renderTpl(val));