中央そろえ

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);
}

というすばらしいのをどこかで見かけたのを忘れてた。