原生JS实现简易模板

来源:互联网 发布:矩阵纵横 编辑:程序博客网 时间:2024/06/05 07:33

原生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));// 渲染结果为/*    1---a    2---b    3---c*/
原创粉丝点击