2011-04-22 152 views

回答

5

有不同類型的模板的。基本上這個想法是將一些包含值的佔位符的字符串作爲輸入,並使用一些函數來將這些佔位符替換爲實際值。像:

var str = 'Hello $1'; 

現在你可以寫一個JavaScript函數來代替$1

function printFromTemplate(){ 
    var args = Array.prototype.slice.call(arguments), 
     str = args[0], 
     repl = args.slice(1); 

    function replacer(a){ 
    var aa = parseInt(a.substr(1),10)-1; 
    return repl[aa]; 
    } 

    return str.replace(/(\$\d+)/g,replacer)); 
} 

,並使用它像這樣:

printFromTemplate(str,'world'); //=> Hello world 
printFromTemplate('Hello $1, it\'s a really $2 day today','world','sunny'); 
     //|=> Hello world, it's a really sunny day today 

[編輯]匿名替代品的功能命名閱讀this blog article後的外部功能well known SO-visitor