日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

art-template入门(六)之解析规则

發(fā)布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。