假设我在www.forum.com上,除了主页之外,网址总是包含各种其他文字,例如 www.forum.com/post1/oh-yeah < / em>或 www.forum.com/post999/oh-baby 但我想创建一个if语句,除了www.forum.com以外的所有内容,我该怎么做?
换句话说,如何做到这一点:
if ( href.indexOf('forum.com') === 'forum.com' ){
console.log('href value is exactly forum.com, with no additional string');
} else {
console.log('href url contains more than just forum.com');
}
格拉西亚斯。
答案 0 :(得分:2)
调用href.indexOf('forum.com')
时结果为整数。如果你得到-1
,那是因为它不存在。
indexOf()方法返回第一次出现的位置 字符串中的指定值。 如果要搜索的值永远不会发生,则此方法返回-1。 更多information
所以(href.indexOf('forum.com') === 'forum.com')
代替(href.indexOf('/') == -1)
而不是www.forum.com
if (href.indexOf('/') == -1) {
console.log('href value is exactly forum.com, with no additional string');
} else {
console.log('href url contains more than just forum.com');
}
href = "www.forum.com/test-1";
if (href.indexOf('/') == -1) {
document.getElementById("test").innerHTML = "href value is exactly forum.com, with no additional string";
} else {
document.getElementById("test").innerHTML = "href url contains more than just forum.com";
}
href = "www.forum.com";
if (href.indexOf('/') == -1) {
document.getElementById("test1").innerHTML = "href value is exactly forum.com, with no additional string";
} else {
document.getElementById("test1").innerHTML = "href url contains more than just forum.com";
}
此代码段可能会有所帮助
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="test">Test</p>
<p id="test1">Test</p>
&#13;
for
&#13;
答案 1 :(得分:1)
到目前为止,你所拥有的答案都很好。我只想包含你可能想要考虑的其他内容。如果您尝试获取网址,然后在主机名后查找任何内容,您可能只想检查如下:
if(window.location.pathname != '' || window.location.search != ''){
//stuff after the current url
}
window.location.pathname
将处理您提供的两个示例。如果您的网址包含查询字符串(其中包含?
的内容),那么window.location.search
将处理该问题。
答案 2 :(得分:0)
这将是另一个很好的解决方案。
var href="www.forum.com";
//ADDED href.indexOf("www.forum.com")==0 for extra verification
if (href.match("www.forum.com$") && href.indexOf("www.forum.com")==0) {
alert("ONLY URL");
}
else
{
alert("URL CONTAINS SOMETHING EXTRA");
}
<强> WORKING FIDDLE 强>