June 13, 2010
JavaScript snippets (trim, supplant)
17 Hours of JavaScript from the Masters で紹介されてるビデオの The JavaScript Programming Language の Part 3 にでてきたコードをメモ。
12:40 あたりに出てくる trim
String.prototype.trim = function() {
return this.replace(
/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};
ちなみに Snipplr で JavaScript trim で検索するといくつかヒットするけど、それぞれ微妙にやり方が違ってて面白い。
その後、13:00 あたりから出てくる supplant
String.prototype.supplant = function(o) {
return this.replace(/{([^{}]*)}/g,
function (a, b) {
var r = o[b];
return typeof r === 'string' ? r : a;
}
);
};
それの使い方(ビデオでは使い方が先に出てくる)。
var template = '<table border="{border}">' +
'<tr><th>Last</th><td>{last}</td></tr>' +
'<tr><th>First</th><td>{first}</td></tr>' +
'</table>';
var data = {
first: "Carl",
last: "Hollywood",
border: 2
};
mydiv.innerHTML = template.supplant(data);
同じようなものに RND template があって、これを参考に(ほとんどコピペして)JavaScriptで最低限のテンプレートシステムを書いたりしたけど、やっぱり書き方が微妙に違う。