質問: new RegExp(fuga_array.join('|')); // チェック if ( url.match(hoge) || url.match(fuga) ) { console.log('allow'); } else { console.log('error'); } ```
回答: まず大前提としてですが、JavaScriptの正規表現は、**専用のリテラル**があります。外側は`'...'`ではなく`/.../`です。途中に入る`/`は、区切りとの区別のために、`\/`と書く必要があります。 そして、タイトルにかかわる内容ですが、ピリオドについては本来`\.`と書くべきものですが、うっかり`.`と書いてしまったとしても「任意の1文字」にピリオド自身も含まれるので、余計なものがヒットすることはありますが、**ヒットしなくなることはありません**。 本当の問題は「【不明な文字】」のところで、`[^/]`では**1文字**にしかヒットしないので、これを`+`で繰り返す必要があります。 ``` var regex = /^https:\/\/[^/]+\.example\.com\/color\// ``` (後半の「【不明な文字】」の箇所については、前方一致とすることで省略しています)