JavaScriptで部分一致検索がしたくて、やり方を調べた。
match関数を使った、正規表現チェック
const regex = /http:\/\/danroo.com\/post-[0-9+]/
if (this.url.match(regex)) {
// urlがマッチした場合の処理
正規表現でマッチさせたい場合は、これがシンプルで使いやすい。
マッチしなかったら、nullが返される。
オプションは以下が用意されている。
gオプション
「g」をつけると、マッチする全てを含む配列を返してくれる。
下記のようにすると、複数のURLパラメータを返してくれるのだろう。
const regex = /http:\/\/danroo.com\/?key=1\/&[\w+]/g
iオプション
「i」をつけると、大文字と小文字を区別しないで検索してくれる。
indexOf関数を使った、前方一致チェック
if (this.url.indexOf('/www.danroo.com/') != -1) {
// urlがマッチした場合の処理
indexOfは、最初にヒットしたインデックス値が返ってくる。正規表現を使わない場合は、これが便利。
部分一致とは違うが、配列値の存在チェック
const url = ['www.danroo.com', 'app.danroo.com']
if (this.url.includes('www.danroo.com')) {
// url配列に存在する場合の処理
つい、どう記載するのが、ベターなのか、わからなくなってしまうことがあるので、残しておく。