5行代码的简易模板解析函数

2018-02-23  本文已影响7人  TOPro

不喜欢拼字符串,es6也没法使用,很捉急
没办法只能出大招,自己动手丰衣足食

function simpleTpl(tpl,opts){
    return tpl.replace(/(\{.+?\})/g,function(all,cap1){
        return opts[cap1.replace(/\}|\{/g,"")] || "";
    })
}

举个栗子

var file="css/index.less";
var command = simpleTpl(
    "lessc {file} {fileNotExt}.css --js -x --source-map={fileNotExt}.css.map",
    {
        file:file,
        fileNotExt:file.split(/\.[^.]+?$/)[0]
    }
)
console.log(command)
//lessc css/file.less css/index.css  --js -x --source-map=css/file.css.map

与没有使用模板函数的情况相比,可读性还是有一定区别的


var file="css/index.less";
var fileNotExt = file.split(/\.[^.]+?$/)[0];
var command = "lessc "+file+" "+fileNotExt+".css" + 
" --js -x --source-map="+fileNotExt + ".css.map";
console.log(command)
//lessc css/file.less css/index.css  --js -x --source-map=css/file.css.map
上一篇 下一篇

猜你喜欢

热点阅读