グローバル フラグを 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
。グローバル フラグが設定されていない場合、コンストラクタ プロパティによる結果の更新が最初に発生します。