ホームページ >ウェブフロントエンド >jsチュートリアル >jsの正規表現におけるtestメソッド、execメソッド、matchメソッドの違いを解説_javascriptスキル

jsの正規表現におけるtestメソッド、execメソッド、matchメソッドの違いを解説_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:01:401135ブラウズ

JS 正規表現における test、exec、match メソッドの違いの説明

test
test は、対応する文字列にパターンが存在するかどうかを調べるブール値を返します。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.test(str)) // true


exec
exec は、現在の一致結果を検索して配列として返します。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
var arr = reg.exec(str);
パターンが存在しない場合の場合、arr は null になります。それ以外の場合、arr は常に長さ 1 の配列であり、その値は現在一致するものになります。 arr には 3 つの属性もあります。index は現在の一致の位置、lastIndex は現在の一致の終了位置 (index は現在の一致の長さ)、上の例では、input は str です。


exec メソッドはパラメータ g の影響を受けます。 g を指定すると、次回 exec が呼び出されたときに、最後に一致した lastIndex から検索が開始されます。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.exec(str)[0]);
alert(reg .exec(str)[0]);
上記の 2 つの出力は両方とも 1a です。ここで、指定されたパラメータ g を見てみましょう:
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(reg.exec(str)[0 ]);
alert(reg.exec(str)[0]);
上記の最初のものは 1a を出力し、2 つ目は 1b を出力します。


match
match は String オブジェクトのメソッドです。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(str.match(reg));
match このメソッドは少し複雑ですexec と似ていますが、 exec は RegExp オブジェクトのメソッドであり、 math は String オブジェクトのメソッドです。 2 つの間のもう 1 つの違いは、パラメーター g の解釈です。
パラメータ g が指定されている場合、match はすべての結果を一度に返します。
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(str.match(reg));
//alert(str .match(reg)); // この文の結果は前の文と同じです
この結果は 3 つの要素を持つ配列です: 1a、1b、1c。

正規表現は JavaScript でよく使用されます。Match と Test の 2 つの関数は正規表現でよく使用されます。もちろん Exec の違いを区別するためにコード例を使用します。

一致例

コードをコピー コードは次のとおりです:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = str.match(regexp);
//rs= Array('A', 'B ', ' C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');

テスト例
コードをコピーします コードは次のとおりです。

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = regexp.test(str);
// rs = true;

Exc 例
コードをコピーします コードは次のとおりです:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
var regexp = /[ A-E]/gi;
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write( rs);
document.write (regexp.lastIndex);
document.write("
");
}

出力
---------------------------------
A 1
B 2
C 3
D 4
E 5
a 27
b 28
c 29
d 30
e 31


別の Exc 例
コードをコピー コードは次のとおりです:

var regexp = / ab*/g;
var str = "abbcdefabh";
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write (rs);
document.write(regexp.lastIndex);
document.write("
");
}

出力
---------------------------------
abb 3
ab 9

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。