我正在编写一个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)。 –