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
没有评论:
发表评论