素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

メモ

sprintfっぽい物を先頭に書いておくと、けっこう便利。

function sprintf() { // limited implementation of sprintf.
  var format = arguments[0], argv = arguments, i = 1;
  return format.replace(/%([s%])/g, function (all, type) {
    return type == "%" ? "%" : argv[i++];
  });
}

こんな感じにテストを書いておいて、

function eq(a, b) {
  console.assert(a == b, "test failed: %s != %s", a, b);
}

eq(sprintf(""), "");
eq(sprintf("%%"), "%");
eq(sprintf("%s", "a"), "a");
eq(sprintf("%s%s", "a", "b"), "ab");
eq(sprintf("%%s"), "%s");

あとで、%dとか、0パディングとかを使いたくなったら、コードとテストをちょっと追加したりする。