match・replace・searchメソッド

記事の内容

match・replace・searchとは?

match・replace・searchの説明前に大前提として知っておかなければならないのが正規表現です。
なぜかと言うと、上記3種類のメソッドは正規表現を検索してマッチしたものに動作するからです。

正規表現がピンとこない方は下記の記事について参照して見てください。

matchメソッド

matchとは、正規表現にマッチした文字列を取得します。
オプション指定のg修飾子が付いている場合は、マッチした文字列を配列に格納していきます。

matchメソッドの説明図
const str = '私は170cmで65kgです。そして週2回筋トレしてます。';

// 数字にマッチ(繰り返し)
const regex = /\d+/g;

console.log("match:" + str.match(regex));
出力結果

match : 170,65,2

replaceメソッド

replaceとは、正規表現にマッチした文字列を指定の文字に置換するメソッドです。

replaceメソッドの説明図

置換パターン $n

$nは、n番目の部分正規表現にマッチし文字列を挿入できます。
※nは0〜99の値をとる

$nの説明図

置換パターン $&

$&は、マッチした部分文字列の先頭に指定した文字が挿入できます。

$&の説明図
const str = '2022年1月23日';

console.log("置換 : " + str.replace(/\d+/g,"※※"));
console.log("指定置換 : " + str.replace(/(\d+)年(\d+)月(\d+)日/,"$2/$3/$1"));
console.log("挿入 : " + str.replace(/\d+/,"🗓 $&"));
出力結果

置換 : ※※年※※月※※日
指定置換 : 9/10/2022
挿入 : 🗓 2022年9月10日

searchメソッド

searchとは、正規表現にマッチした文字列の先頭位置を返し、マッチしなければ-1を返します。

searchの説明図
const str = '2022年1月23日';

console.log("マッチあり : " + str.search(/(\d+)日/));
console.log("マッチなし : " + str.search(/(\d+)曜日/));
出力結果

マッチあり : 7
マッチなし : -1

記事の内容
閉じる