0

グローバル フラグを true に設定します。

<script>
var str="I am really puzzled up";
var str1="Being puzzled is first step towards understanding";
var patt=new RegExp("puzzled","gi");
patt.exec(str);
alert(RegExp.$_);   //I am really puzzled up *[1]
patt.exec(str1);
alert(RegExp.$_);   //I am really puzzled up *[2]
patt.exec(str1);
alert(RegExp.$_);   //Being puzzled is first step towards understanding *[3]
</script>

グローバル フラグを true に設定しない場合:

<script>
var str="I am really puzzled up";
var str1="Being puzzled is first step towards understanding";
var patt=new RegExp("puzzled","i");
patt.exec(str);
alert(RegExp.$_);   //I am really puzzled up 
patt.exec(str1);
alert(RegExp.$_);   //Being puzzled is first step towards understanding  
</script>

出力はコメントで示されています

  • [1]-この出力に満足しています
  • [2]-パターンを他の文字列コンストラクターのプロパティと既に一致させている場合でも、最初に一致した文字列が表示されます
  • [3]-パターンを文字列と再度一致させることによってのみ、目的の結果が得られます。

patt.exec methodコンストラクタ プロパティによる結果の更新を変更するために 2 回使用する必要があるのはなぜですか?

Ques-Itglobalは、パターンのフラグが に設定されている場合にのみ発生しますtrue。グローバル フラグが設定されていない場合、コンストラクタ プロパティによる結果の更新が最初に発生します。

4

1 に答える 1