Panda Noir

JavaScript の限界を究めるブログです。

Stringオブジェクトへメソッドを追加して特定文字の文字数をカウントする

前に書いた記事の補足です。 これを応用すると様々なことができます。

String.prototype.count=function(c) {for(var a = 0,count = 0, d = this.length; a < d; a++) this.charAt(a) == c && count++;return count}

これで "めちゃ".mult(2)+"イケてるっ!"とするとめちゃめちゃイケてるっ!が返ってきます。 "あいうえおああああああ".count("あ")とすると6が返ってきます。

とても応用がきくので一度やってみてください。 追記:特定の文字列のカウントは以下の通りです

String.prototype.mult=function (c) {
    for (var a = ""; 0 < c;) a += this, c--;
    return a
}
String.prototype.count=function (c) {
    for (var a = 0,cnt = 0, d = this.length; a < d; a++){
        this.charAt(a) == c && cnt++;
    }
    return cnt
}
String.prototype.countStr=function (a) {
    for (var cnt = 0,i = 0; - 1 != this.indexOf(a, i);){
        i = this.indexOf(a, i) + 1, cnt++;
    }
    return cnt
}

使い方は文字列.countStrです さらに圧縮した版

var d=String.prototype;d.mult=function(b){for(var a="";0<b;)a+=this,b--;return a};d.count=function(b){for(var a=0,c=0,e=this.length;a<e;a++)this.charAt(a)==b&&c++;return c};d.countStr=function(b){for(var a=0,c=0;-1!=this.indexOf(b,c);)c=this.indexOf(b,c)+1,a++;return a};