私はanother questionを持っていたし、それは私は正規表現がw3schoolsから、それがRegex Javascript // gフラグが状態に影響するのはなぜですか?
ある方法に影響を与えている理由を理解いけない答えましたが、それは
グラムを言う:グローバルマッチ(すべてのマッチを見つけるのではなく後に停止を行います最初の試合)
確認してください。わかりました。私はこのコードで配列を取得Thatsなぜ
var str="The rain in SPAIN stays mainly in the plain";
var patt1=/ain/gi;
document.write(str.match(patt1));
出力:
ain,AIN,ain,ain
正規表現は、それが複数のインスタンスを置き換えます/g
で、似ています。
しかし試合
var re=/hi/gi;
alert(re.test("hi") + " " + re.test("hi"));
での結果は "偽真" です。
なぜ$%^ &になるのですか?両方のテストの文字列はまったく同じです!過去に私は、グローバルでは、改行(これは私がこのテストでやりたかったことです)を検索することを意味すると思っていました。私が引用した最初のことは、gがグローバルマッチであることでした。
NEXT CALLに影響を及ぼすことについて何も言及していません!/gを指定しなくてもコードは正しく動作します(改行を渡す必要はありません)。なぜ次のテストに影響しますか? gumboの答えは、lastIndexに影響を及ぼしていると言いますが、gフラグを使用している間は他の2つの関数が使用されていないので、%^ & *は共有状態が分かりませんでした。私は真実と偽を欲しかっただけですが、もし一致するものがなければ、それは世界的に見出されたマッチの量を含むintを返すでしょうか? (すなわち、 "hi"では1、文字列 "hihi"では2)。
regex.testを実行しているときに、次の呼び出しに影響を与えるのはなぜですか?また、できる場合は、私は実際にその '機能'をしたいときに提供
w3schoolsは信頼できません。詳細については、[w3fools](http://w3fools.com)を参照してください。あなたのJS情報をどこにでも持っているなら、[MDN](https://developer.mozilla.org/)から入手してください。 – zzzzBov
@zzzzBov私は過去に「javascript」マニュアルを見つけようとしましたが、mdn bcとは考えていませんでした。 ok私は次回にそこに点検する! –
@ acidzombie24、究極のリペアのために、PDFとしてダウンロード可能なECMAscript仕様を使用してください。はい、クイックリファレンスとして使用するのは面倒ですが、それは権威あるガイドです!しかし、zzzzBovによると、MDNはおそらく最初のコールオブコールです。 – Doin