ユーザーが特定のウェブサイトのコンテンツを変更できるようにするChrome拡張機能を作成しています。私は、ユーザーがワイルドカードを使用して、これらのウェブサイトを指定できるようにしたいのですが、たとえばhttp://*.google.com
またはhttp://google.com/*
ワイルドカードを使用したJavascriptの一致URL - Chrome拡張子
のために私は次のコード
currentUrl = "http://google.com/";
matchUrl = "http://*.google.com/*";
match = RegExp(matchUrl.replace(/\*/g, "[^]*")).test(currentUrl);
を見つけました。しかし、それにはいくつかの問題があります。
http://test.google.com/
は
http://google.com/
一致する
http://test.google.com
一致しない
http://.google.com/
一致しない一致
解明である:
http://google.com
これは一致しません。これは本当の問題です。
どうすれば一致が正しくあるかどうかを確認するJavaScriptコードスニペットを作成できますか?このmatchUrl
matchUrl = "http://*.google.com/*";
と
を参照してください
ので、この正確な
matchUrl
のために、正規表現はのように見えるのだろうか? – melpomene
最初にURLを解析して、ベース部分の '??[^ /] * \。)?'と置き換え、 '/ *'を '(?:/ [^]) *)? '。多分、特別な文字を最初にエスケープすることをお勧めします。 –
正規表現は['/http:¥/\/(?:[^\/]*\.)?google\.com(?:\/[^]*)?/'](https://)にする必要があります。 regex101.com/r/jB2rK7/1)。 –