2022年7月15日星期五

javascript match and exec

 3Q4:  https://step-learn.com/article/javascript/124-diff-match-exec.html

JavaScript では、正規表現にマッチした文字列を取得するメソッドとして、 match() メソッドと exec() メソッドがあります。

オブジェクト、書式の違い

まず、「どのオブジェクトのメソッドか」という違いがあります。 match() メソッドは String オブジェクトのメソッドで、 exec() メソッドは RedExp オブジェクトのメソッドです。

ですから、書式はそれぞれ次のようになります。


// match()
文字列.match(正規表現)

// exec()
正規表現.exec(文字列)

match() メソッド

// 文字列
var str = "cat map cut bat cute cap";

// 正規表現
var ex = /c.t/g;

var arr = str.match(ex);

for (var i = 0, len = arr.length; i < len; i++){
    console.log(arr[i]);
}

// 実行結果
cat
cut
cut


exec() メソッド

// 文字列
var str = "〒 135-0064\n〒 105-7444";

// 正規表現
var ex = /(\d{3})-(\d{4})/g;

var arr = [];

while((arr = ex.exec(str)) != null){
    console.log(arr);
    console.log('マッチ文字列:', arr[0]);
    console.log('lastIndex:', ex.lastIndex);
}

// 実行結果

Array [ "135-0064", "135", "0064" ]
マッチ文字列: 135-0064
lastIndex: 10

Array [ "105-7444", "105", "7444" ]
マッチ文字列: 105-7444
lastIndex: 21




没有评论: