文字列のマッチとか正規表現とかを検索するとちょくちょく出てくる”RegExp”という単語。今になってそういう意味なのね。となんとなく分かってきたので簡単にまとめてみる。
RegExpは正規表現のオブジェクト
”RegExp”は正規表現のオブジェクト。これを知らなかったためにいろいろこんがらがっていたけど、なんてことはない。調べる気になって調べればすぐ出てくる。
参考MDN↓

苦手意識ってよくないよね。。。
例えば下記のような変数定義があったとする。
const regexp = /hoge/;
よく分かっていない時は、「/hoge/っていう文字列をregexpという変数に格納しているんだな。」なんて思っていたけど、実は落とし穴で。
上記のコードは下記のように書き換えることができる。
const regexp = new RegExp("hoge");
そう。/hoge/は文字列ではなくて、RegExpクラスからオブジェクトを生成するよ〜。という意味だった。
そしてRegExpクラスから生成されたオブジェクトは正規表現オブジェクトになるのであった!!
どういう時に使う?
オブジェクトなので使うとすればメソッドを使うことが主だと思いますが、自分はtestメソッドで文字列のマッチングを行うことが多いです。
例えば、
const str = "hoge";
const regex = /ge/;
console.log(regex.test(str)); // =>true
みたいな感じです。
このtestメソッドは正規表現オブジェクトだから使えるメソッドですので、regexにただの文字列が格納されていれば使うことはできません。

メソッドって??
クラスの中には最初からいくつかの関数が定義されていて、オブジェクトが生成される時、それらの関数が使える状態でセットされ、生まれてきます。
その関数は好きなタイミングで呼び出して使うことができます。そういった関数のことをメソッドと呼びます。
生まれた時から唱えるだけで魔法が使える異世界転生物の主人公がオブジェクトで、メソッドがその魔法みたいなものですね。となるとクラスは異世界転生システムですかね。
正規表現オブジェクトなのでもちろん正規表現も使えます。
例えば、
const regex = /[0-9]+/;
console.log(regex.test("123")); // => true
※[0-9]+は0から9までの文字が1個以上。という意味。
応用編
わざわざ変数に格納しなくてもそのまま使うこともできます。
console.log(/[0-9]+/.test("123")); // => true
ここまでくると逆によく目にするような構文になっているのではないでしょうか。
そうなんです!(何が?笑)
「正規表現は//で囲もうね〜。」と伝えられているのは、//で囲むことによって正規表現オブジェクトを生成しているのです。
なのでその後に.test()とか.match()とか繋げてもコンピュータが読み取ってくれるんですね。
あーもやっと解消。
まあそれはいいですけどもっと正規表現を使いこなせるようになりたいですね。笑