我正在編寫一個Chrome擴展程序,允許用戶修改特定網站上的內容。我希望用戶能夠指定使用通配符這些網站,例如http://*.google.com
或http://google.com/*
Javascript與通配符匹配的網址 - 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代碼片段來檢查是否存在正確匹配?
有什麼不好的結果嗎? – melpomene
我想你應該首先解析URL,然後用'(?:[^ /] * \。)?'替換'* .'在基部和'/ *'中用'(?:/ [^] *)?'。也許,一個好主意是首先逃避特殊字符。 –
正則表達式應該是['/http:\/\/(?:[^\/]*\.??google\.com(?:\/[^]*)?/'](https:// regex101.com/r/jB2rK7/1)。 –