覆盖window.location.href的查询字符串变体

时间:2017-07-22 16:51:37

标签: javascript regex if-statement location comparison

考虑以下JS代码:

if ( window.location.href == "https://teamtreehouse.com/signin" ) {
    // do stuff...
}

我需要比较运算符不仅会覆盖确切的网址,还会覆盖查询字符串和数据之后的任何可能的变体,这些数据会出现在短语" signin"。

之后。

你将如何在JS中做到这一点?我知道它应该包括正则表达式但由于线性学习对我来说很重要,我宁愿在接下来的几周内等待我的JS正则表达式课程,也只是在这个特殊场合问这里。

3 个答案:

答案 0 :(得分:0)

尝试以下正则表达式:

/^https:\/\/teamtreehouse\.com\/signin/i

^表示“以...开头”,额外的\字符只是为了逃避正则表达式中的特殊字符。

根据@epascarello的评论,你绝对应该使用“ignore-case”参数,i(上面添加)。

编辑:

使用test功能:

(/^https:\/\/teamtreehouse\.com\/signin/i).test(window.location.href)

答案 1 :(得分:0)

您可以使用String#match检查某些字符串是否包含某些内容。

<强>实施例

&#13;
&#13;
if (window.location.href.match("https://teamtreehouse.com/signin")){
    // Do something
}
&#13;
&#13;
&#13;

您也可以使用此.host&amp;来自Window.location对象的.pathname

<强>实施例

&#13;
&#13;
var link = window.location.host + window.location.pathname;
if (link === "www.teamtreehouse.com/signin"){
    // Do something
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

&#13;
&#13;
if ( /^[https:\/\/teamtreehouse.com/signin][\?[\.]+]?/.test(window.location.href)) {
    // do stuff...
}
&#13;
&#13;
&#13;