JavaScript正規表現19例(12)


(…続例11)
例12:グローバルRegExpプロパティ

  
  
  
  
  1. void function reg_12()  
  2. {  
  3.     var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())  
  4.     if (ver >= 5.5)  
  5.     {  
  6.         var s = "Live for nothing,die for something";  
  7.         var r = /\w+/g;  
  8.         while ((r.exec(s)) != null)  
  9.             alert(RegExp.index + "-" + RegExp.lastIndex + ": " + RegExp.lastMatch);  
  10.     }  
  11.     else 
  12.     {  
  13.         alert(" JScript 5.5 。");  
  14.     }  
行3:ブラウザのJavaScriptスクリプトエンジンを検出し、それぞれメインバージョン番号とサブバージョン番号を取得し、文字を接続してNumber()メソッドで数字に変換し、5.5以上のバージョンかどうかを判断します.行7:\w記号マッチングは、下線を含む単語の任意の文字であり、'A-Za-z 0-9_'に相当する.スイッチgを使用しているので、それぞれにマッチします.ここでは^記号を使用して文字列からマッチする必要がありません.行8:このループは正規表現が内容にマッチするとループします.スイッチgがあるので、単語は毎回後ろに移動します.行9:グローバルオブジェクトRegExpの3つの属性にアクセスすることにより、各単語の位置と内容が表示されます.index属性は文字位置を返します.文字列の最初のマッチングの開始位置です.lastIndex属性は文字の位置を返します.検索された文字列の次の成功マッチの開始位置です.これらの2つの属性は、下付き0に基づいて開始されます.明らかにlastIndex属性は単語の終端文字の索引より1大きいです.lastMatch属性は正規表現検索中の最後に一致した内容を返します.運転結果:whileループは6回、例えば1回目は0-4:ライブを表示します.
(続きはまだ…)