art-template入门(六)之解析规则
生活随笔
收集整理的這篇文章主要介紹了
art-template入门(六)之解析规则
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載自??art-template解析規(guī)則
解析規(guī)則
template.defaults.rules
art-template 可以自定義模板解析規(guī)則,默認(rèn)配置了原始語法與標(biāo)準(zhǔn)語法。
修改界定符
| // 原始語法的界定符規(guī)則 template.defaults.rules[0].test = /<%(#?)((?:==|=#|[=-])?)[ \t]*([\w\W]*?)[ \t]*(-?)%>/; // 標(biāo)準(zhǔn)語法的界定符規(guī)則 template.defaults.rules[1].test = /{{([@#]?)[ \t]*(\/?)([\w\W]*?)[ \t]*}}/; |
它們是一個正則表達(dá)式,你可以只修改界定符部分。例如修改?<%?%>?為?<???>:
| var rule = template.defaults.rules[0]; rule.test = new RegExp(rule.test.source.replace('<%', '<\\\?').replace('%>', '\\\?>')); |
添加語法
從一個簡單的例子說起,讓模板引擎支持 ES6?${name}?模板字符串的解析:
| template.defaults.rules.push({test: /\${([\w\W]*?)}/,use: function(match, code) {return {code: code,output: 'escape'}} }); |
其中?test?是匹配字符串正則,use?是匹配后的調(diào)用函數(shù)。關(guān)于?use?函數(shù):
- 參數(shù):一個參數(shù)為匹配到的字符串,其余的參數(shù)依次接收?test?正則的分組匹配內(nèi)容
- 返回值:必須返回一個對象,包含?code?與?output?兩個字段:
- code?轉(zhuǎn)換后的 JavaScript 語句
- output?描述?code?的類型,可選值:
- 'escape'?編碼后進(jìn)行輸出
- 'raw'?輸出原始內(nèi)容
- false?不輸出任何內(nèi)容
值得一提的是,語法規(guī)則對渲染速度沒有影響,模板引擎編譯器會幫你優(yōu)化渲染性能。
總結(jié)
以上是生活随笔為你收集整理的art-template入门(六)之解析规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信二怎么下载 怎么下载微信二
- 下一篇: art-template入门(七)之压缩