2011-04-22 150 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