中央そろえ
io の alignCenter を javascript で。 プラス拡張
String.prototype.repeat = function(n) { for(var i=0, str=""; i < n; i++) { str += this; } return str; } String.prototype.alignCenter = function(n, str, astr) { var r = (n - this.length) / 2 return str.repeat(Math.floor(r)) + this + (astr || str).repeat(Math.ceil(r)); }
js> "hoge".alignCenter(10, "-") ---hoge--- js> "fuga".alignCenter(13, "$") $$$$fuga$$$$$ js> "foo".alignCenter(9, ">", "<") >>>foo<<<
追記
第2引数が2文字以上の場合おかしくなるので
String.prototype.repeat = function(n) { var str = ""; while(1) { str += this; if(str.length >= n) { str = str.slice(0,n); break; } } return str; }
あぁこれだと repeat って名前まずいか。
追記
repeat() に関して
String.prototype.repeat = function(n) { return Array(n+1).join(this); }
というすばらしいのをどこかで見かけたのを忘れてた。