ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_javascript スキルにおける正規表現のグローバル マッチング パターン分析

Javascript_javascript スキルにおける正規表現のグローバル マッチング パターン分析

WBOY
WBOYオリジナル
2016-05-16 18:07:20937ブラウズ
コードをコピーします コードは次のとおりです。

var str = "123#abc"; var re = /abc/ig;
console.log(re.test(str)) //true を出力します。
console.log(re.test(str)); //false を出力します。 .log( re.test(str)); // true を出力
console.log(re.test(str)) // false を出力


正規表現の作成時に使用した場合object "g" 識別子またはそのグローバル属性値が true に設定されている場合、新しく作成された正規表現オブジェクトはパターンを使用して、一致する文字列とグローバルに一致します。グローバル マッチング モードでは、指定された文字列に対して複数のマッチングを実行して検索できます。各一致では、現在の通常オブジェクトの lastIndex 属性の値を開始位置として使用して、ターゲット文字列の検索を開始します。 lastIndex 属性の初期値は 0 です。一致する項目が見つかった後、lastIndex の値は、文字列内の一致するコンテンツの次の文字の位置インデックスにリセットされます。これは、検索を開始する位置を識別するために使用されます。次回試合が行われるとき。一致する項目が見つからない場合、lastIndex の値は 0 に設定されます。通常のオブジェクトのグローバル一致フラグが設定されていない場合、lastIndex 属性の値は常に 0 であり、一致が実行されるたびに、文字列内で最初に一致する項目のみが見つかります。次のコードを使用すると、実行に一致する、対応する lastIndex 属性の値を表示できます。


var str = "123#abc";
var re = /abc/ig;
console.log(re.test(str)) //出力 7
console.log(re.lastIndex); .log( re.test(str)); // false を出力
console.log(re.lastIndex) // 0 を出力
console.log(re.test(str));
console.log(re.lastIndex); // 出力 7
console.log(re.test(str)) // 出力 false
console.log(re.lastIndex); 0


RegExp.prototype.exec(str) メソッドと String.prototype.math(rgExp) メソッドについて
通常のオブジェクトのテスト メソッドは true の値を返しますまたは false で、ターゲットを検出するだけで済みます。このメソッドは、文字列が指定されたパターンに一致するかどうかを確認する場合に便利ですが、一致する内容を取得する必要はありません。一致結果を取得する必要がある場合は、RegExp 型の exec(str) メソッドまたは String 型の match(rgExp) メソッドを使用する必要があります。

RegExp.prototype.exec(str) メソッドは、NULL または配列を返します。配列の 0 番目の要素には、文字列 str で見つかった一致する内容が格納されます。パターン内で角かっこ「()」を使用してサブマッチを指定します。

グローバル フラグが使用されていない場合、String.prototype.math(rgExp) メソッドは RegExp.prototype.exec(str) と同様に動作します。グローバル一致フラグが設定されている場合、String.prototype.math(rgExp) メソッドによって返される配列項目要素 0 ~ n には、部分一致を除くすべての一致した項目が含まれます。現時点では、RegExp.$1..$9 を使用して 9 つの部分一致を取得できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。