記事の内容
match・replace・searchとは?
match・replace・searchの説明前に大前提として知っておかなければならないのが正規表現です。
なぜかと言うと、上記3種類のメソッドは正規表現を検索してマッチしたものに動作するからです。
正規表現がピンとこない方は下記の記事について参照して見てください。
matchメソッド
matchとは、正規表現にマッチした文字列を取得します。
オプション指定のg修飾子が付いている場合は、マッチした文字列を配列に格納していきます。
例
const str = '私は170cmで65kgです。そして週2回筋トレしてます。';
// 数字にマッチ(繰り返し)
const regex = /\d+/g;
console.log("match:" + str.match(regex));
出力結果
match : 170,65,2
replaceメソッド
replaceとは、正規表現にマッチした文字列を指定の文字に置換するメソッドです。
置換パターン $n
$nは、n番目の部分正規表現にマッチし文字列を挿入できます。
※nは0〜99の値をとる
置換パターン $&
$&は、マッチした部分文字列の先頭に指定した文字が挿入できます。
例
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を返します。
例
const str = '2022年1月23日';
console.log("マッチあり : " + str.search(/(\d+)日/));
console.log("マッチなし : " + str.search(/(\d+)曜日/));
出力結果
マッチあり : 7
マッチなし : -1