如何使用 JavaScript 匹配我所在窗口的当前 URL 中的字符串?

Posted

技术标签:

【中文标题】如何使用 JavaScript 匹配我所在窗口的当前 URL 中的字符串?【英文标题】:How can I use JavaScript to match a string inside the current URL of the window I am in? 【发布时间】:2011-02-01 03:02:01 【问题描述】:

我使用了出色的 gskinner.com/RegExr/ 工具来测试我的字符串匹配正则表达式,但我不知道如何在我的 javascript 文件中实现它以返回 true 或 false。

我的代码如下:

^(http:)\/\/(.+\.)?(***)\.

在诸如 http://***.com/questions/ask 这样的 URL 上,这将匹配(根据 RegExr)http://***.

所以这很好,因为我想尝试将当前的 window.location 与该字符串匹配,但我遇到的问题是这个 JavaScript 脚本不起作用:

var url = window.location;
if ( url.match( /^(http:)\/\/(.+\.)?(***)\./ ) ) 

    alert('this works');
;

关于我在这里做错了什么有什么想法吗?

感谢阅读。

詹尼斯

【问题讨论】:

【参考方案1】:

如果你想测试域名(主机)window.location.host 给你你需要的东西(带有子域)

if( /^(.*\.)?***\./.test(window.location.host) )
    alert('this works');

【讨论】:

【参考方案2】:

window.location 不是字符串;它是一个对象。使用window.location.href

【讨论】:

感谢您的帮助,我无法完全解决这个问题,所以我选择了 Pawel 的解决方案,但再次感谢您。 这也是一个很好的答案。 window.location 是一个对象,.href 和 .host 是它的属性,表示为字符串。您可以使用其中任何一个,但我认为 location.host 当您只对位置字符串的这一部分感兴趣时会更好:) 啊,现在这对我来说很有意义,所以 href 将返回完整的 url,而主机只会到 http://sub.domain.ext/ ? Host 只会返回“sub.domain.ext”部分,因为那是主机。

以上是关于如何使用 JavaScript 匹配我所在窗口的当前 URL 中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在搜索匹配关键字时在同一窗口中加载特定网址

如何在JavaScript中确认两个密码相同

JavaScript jQuery TOOLS事件中的当前项

CSS 媒体查询和 JavaScript 窗口宽度不匹配

CSS 媒体查询和 JavaScript 窗口宽度不匹配

如何从后面的用户控件代码访问用户控件所在的主窗口上的网格列