0
我正在爲我正在構建的網站使用javascript模板系統,而且我遇到了一些問題。Javascript正則表達式模板:只有當括號內的字符串相等時才匹配
我用下面的正則表達式來匹配我的字符串中的段:
/(\{\{(#|\^)(.*?)\?\}\}(.*?)\{\{\/(.*?)\?\}\})/
飼養這樣的字符串,如:
{{#is_user?}} The user is an user {{/user?}}
雖然指出「用戶」 =真,顯示串。當「is_user」設置爲false時,字符串不顯示。但是我發現,這使得沒有空間嵌套這樣認爲:
{{#is_user?}} The user is an user {{#has_picture?}} and has a picture{{/has_picture?}} {{/user?}}
這將導致如下:
The user is an user {#is_user?}} The user is an user{{/user?}}
因此這意味着比賽被{{#is_user之間發現了什麼? }}和{{/ has_picture?}},因爲正則表達式只是檢查{{#anystring?}}和{{/ anystring? }}。
現在我的問題是如果有可能只有一個匹配,如果括號之間的兩個字符串是相等的,所以只有在{{#stirngA?}} {{/ stringA?}}時才能找到匹配。
非常感謝你,我仍然需要在實踐中對它進行測試,但現在看來它正是我所需要的。同樣感謝你的紅色鏈接,我正在尋找類似的東西。 – 2012-02-01 20:21:00