【メモ】JavaScriptのreplaceメソッドと正規表現について


忘れてしまいそうなので、メモっときます。

replaceメソッドの使い方

replace('検索文字','置換した後の文字')という感じ。

そして、$1とか$2とかは、検索文字の()の中身のこと。

var str = '今日は2019年6月16日、明日は2019年6月17日です。';
var result1 = str.replace( /(\d+)年(\d+)月(\d+)日/g , "$1/$2/$3" );

// 結果
今日は2019/6/16、明日は2019/6/17です。

みたいな感じになる。

正規表現

今回謎だったのが、下記の正規表現。

replace(/[\||](.+?)《(.+?)》/g, '<ruby>$1<rt>$2</rt></ruby>')

無知すぎて、この程度もわかりませんでした・・・

でも今らなわかる!!!

/パターン/フラグという正規表現の記述方法。
[\||]|に一致するものという意味。
\(バックスラッシュ)はエスケープするためのもの。
[]は角括弧に含まれるいずれか1文字にマッチする。
.+?は一文字以上の文字と一致する。
/gで一致するのがあっても、最後まで検索&置換を続ける

という感じ。

これで、|で始まって、文字《文字》という正規表現ができる。