这是我参考Prism.js算法写的一个小功能,没什么可说的,作为程序猿看例子应该秒懂。
字符串模板引擎类:
/*class*/StringTemplate = function ( /* Optional {patt: RegExp, clPatt: RegExp}*/pattern) { if (!!pattern) { this.patt = pattern.patt; this.clPatt = pattern.clPatt; } else { this.patt = /%\{\s*[\w\-]+\s*\}/g; this.clPatt = /(^%\{\s*)|(\s*\}$)/g; } this.format = function(val, map) { var ls = []; var res; var prevEnd = 0; while ((res = this.patt.exec(val)) != null) { var va = res[0]; var start = val.substr(prevEnd, res.index - prevEnd); prevEnd = res.index + va.length; ls.push(start); var vac = va.replace(this.clPatt, ""); ls.push(map[vac]); } ls.push(val.substr(prevEnd, val.length)); return ls.join(""); } }
使用方式:
var str = new StringTemplate().format("你好%{userName }, 欢迎再次登陆%{systemName}",{userName: "小明", systemName: "jb51"}); //str="你好小明, 欢迎再次登陆jb51";
希望本文所述对大家的javascript程序设计有所帮助。
您可能感兴趣的文章: