目標:將帶有模板符號的html經過f()函式之後輸出普通html
exec()函式
用於檢索字串中的正規表示式的匹配
返回乙個陣列,其中存放匹配的結果
此陣列的第 0 個元素是與正規表示式相匹配的文字,第 1 個元素是與 regexpobject 的第 1 個子表示式相匹配的文字(如果有的話),第 2 個元素是與 regexpobject 的第 2 個子表示式相匹配的文字(如果有的話),以此類推。除了陣列元素和 length 屬性之外,exec() 方法還返回兩個屬性。index 屬性宣告的是匹配文字的第乙個字元的位置
var templateengine = function(tpl,data)))(.*)?/g;//匹配<%..%>內的語句
var code = 'var arr=;\n';
var cursor=0;//指標
//新增的內容的雙引號轉義
var add = function(line,js)
while(match = re.exec(tpl))
add(tpl.slice(cursor,tpl.length));
code += 'return arr.join("");';
//轉換資料
}
主要的思想就是正規表示式匹配模板符號取出內容,轉換成data的資料。
核心是new function()可以執行js字串
thymeleaf引擎模板公共頁面抽取
1 抽取公共片段 2 引入公共片段 模板名 選擇器 模板名 片段名3 預設效果 insert的公共片段在div標籤中 如果使用th insert等屬性進行引入,可以不用寫 行內寫法可以加上 三種引入公共片段的th屬性 th insert 將公共片段整個插入到宣告引入的元素中 th replace 將...
FreeMarker模板引擎實現頁面靜態化
一 使用情景 公司的cms產品,最近正在做功能遷移,而我正好負責將老後台的文章發布功能遷移到新後台。文章發布使用到的核心技術是頁面靜態化。發布的時候,會生成對應的靜態頁面,並將靜態檔案儲存到指定路徑下 同時,重新整理cdn,實現修改同步。二 頁面靜態化說明 技術原理靜態化一般使用在這種場景 將經常訪...
NVelocity模板引擎
因此決定自學一下nvelocity的使用 拋開monorail 安裝後,在其下的bin目錄中可找到nvelocity.dll net專案中將用到 並將其複製出來放到我的測試web bin目錄下。到castleproject上看了一下using it大致有四步 先要引入以下命名空間 using com...