2010年7月16日金曜日

JavaScript文字列検索のバリエーション

indexOfメソッドか正規表現(RegExpオブジェクト)を使う。

RegExpオブジェクトはnewせずにリテラルをスラッシュで囲む方法もある(静的な正規表現)。

for (var i = 0; i < 3000; i++) {
    //var m = str.indexOf('item:9999');           // (1) indexOf
    //var m = /item:9999/.exec(str);             // (2) 静的な正規表現
    //var m = new RegExp('item:9999').exec(str); // (3) 動的生成の正規表現
    //var m = /item:9999$/.exec(str);             // (4) 正規表現 (3/31 追加)
}

4番目は、わざと正規表現のメタキャラクタを入れて最適化を無効にしている。

RgeExpに関しては、存在確認だけならexecよりtestを使うほうが行儀がいい。

0 件のコメント:

コメントを投稿