はてブChrome公式拡張 で使われている sprintf は単体でも使える。便利。
sprintf.js
var sprintf = function (str) {
var args = Array.prototype.slice.call(arguments, 1);
return str.replace(/%0(\d+)d/g, function(m, num) {
var r = String(args.shift());
var c = '';
num = parseInt(num) - r.length;
while (--num >= 0) c += '0';
return c + r;
}).replace(/%[sdf]/g, function(m) { return sprintf._SPRINTF_HASH[m](args.shift()) });
};
sprintf._SPRINTF_HASH = {
'%s': String,
'%d': parseInt,
'%f': parseFloat
};
この拡張内で使われているUtility関数は他のケースでも便利に使いまわせるものが多い。ダイジェストは以下で解説してます。
JSerなら ソース はひととおり目を通しておくと良いでしょう。