Javascript 正则表达式 URL 匹配

新手上路,请多包涵

到目前为止我有这个:

 chrome.tabs.getSelected(null, function(tab)
{
    var title = tab.title;
    var btn = '<a href="' + tab.url + '" onclick="save(\'' + title + '\');"> ' + title + '</a>';

    if(tab.url.match('/http:\/\/www.example.com\/version.php/i'))
    {
        document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
    }
});

基本上它应该匹配其中的域:

 http://www.example.com/version.php?*

任何匹配的东西,即使它包含类似 version.php?ver=1 等的东西

当我使用我上面的代码时,它没有显示任何内容,但是当我删除 if 语句时,它很好,但它显示在其他页面上,它不应该 显示在匹配的 URL 上。

编辑:

 if(tab.url.match(/http:\/\/www.example.com\/version.php/i))
{
    document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
}

甚至无法以某种方式工作…

原文由 BonjourHolaOla 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 442
2 个回答

尝试这个:

 if(tab.url.match(/http\:\/\/www\.example\.com\/version\.php/i))
{
    //...
}

原文由 limc 发布,翻译遵循 CC BY-SA 4.0 许可协议

删除引号。 Opera DargonFly 给我:

 >>> 'http://www.example.com/version.php'.match(/^http:\/\/www\.example.com\/version\.php/i)
[object Array]

原文由 Artefacto 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题