Hatena::ブログ(Diary)

Higé au lait Twitter

 | 

2006年09月17日

replaceメソッドについて

replaceの第2引数に関数を持ってきたときの動作とか,正規表現のグルーピングによる後方参照とか。

String.prototype.escapeHTML = function(){
    return this.replace(/(&)|(")|(<)|(>)/g,function($0,$1,$2,$3,$4){
        if($1)
            return "&amp;";
        else if($2)
            return "&quot;";
        else if($3)
            return "&lt;";
        else
            return "&gt;";
    });
}

なんてものを書いてみたけど, escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()の2つめのがエレガントだなぁとおもった。


参考

トラックバック - http://d.hatena.ne.jp/higeorange/20060917/1158454960
 |