2013-07-20 22 views
0

我試圖創建自己的JavaScript簡單的模板功能 我想創建一個HTML頁面,看起來像這樣我如何搜索{{*}},並使用JSON

<p> 
{{HELLO_WORLD}} 
<br /> 
{{MY_NAME_IS}} 
</p> 

更換和比用JavaScript來取代任何在{{}} 用JSON VAR將這個樣子

{HELLO_WORLD: "Hello World!", MY_NAME_IS: "My name is"} 

我有點困惑做這個正確的方法。 關鍵是要製作一個多語言網站,這樣我就可以加載所需語言的json。 謝謝。

回答

2

JavaScript支持基於正則表達式的查找和替換,並具有替換功能。所以,你可以這樣做:

myInputString.replace(/\{\{([^\}]*)\}\}/g, function(s, v) { return myJSON[v] }); 

爲了解釋:

replace需要兩個參數。第一個是正則表達式對象。在這種情況下,我們使用JavaScript的/expression/flags語法構建一個內聯。它會尋找2個開啓的大括號(因爲它們在正則表達式中有特殊含義,所以需要進行轉義),然後是任何不是大括號的字符,然後是2個大括號。 g意味着「全局」,因此它將匹配所有案例,而不僅僅是第一個。

當找到匹配項時,函數將被調用。第一個參數(我稱之爲s)是完全匹配的字符串(如「{{abc}}」),第二個參數(我稱之爲v)被設置爲括號中的第一位(如「abc」)。

在實際代碼中,您應該添加錯誤檢查(不存在的變量),並可能轉換爲小寫/無論如何。

replace全部細節在這裏:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

+0

偉大的作品!謝謝你的真棒 –