5

我有一个数组:

var checkURL = ['abc123', 'abc124', 'abc125'];

如何检查数组中的字符串之一是否存在于 window.location.pathname 中?

我知道我可以单独使用:

<script type="text/javascript">
    $(document).ready(function () {
        if(window.location.href.indexOf("abc123") > -1) {
           alert("your url contains the string abc123");
        }
    });
</script> 
4

7 回答 7

10

使用 for 循环进行线性搜索。

$(document).ready(function () {
    var checkURL = ['abc123', 'abc124', 'abc125'];

    for (var i = 0; i < checkURL.length; i++) {
        if(window.location.href.indexOf(checkURL[i]) > -1) {
            alert("your url contains the string "+checkURL[i]);
        }
    }
});
于 2013-03-11T17:09:48.220 回答
1

使用 for 循环:

$(document).ready(function () {
    for (var i = 0; i < checkURL.length; i++) {
        if(window.location.href.indexOf(checkURL[i]) > -1) {
           alert("your url contains the string " + checkURL[i]);
        }
    }
});
于 2013-03-11T17:09:54.597 回答
1

这是一个使用join和正则表达式的选项。

var checkURL = ['abc123', 'abc124', 'abc125'];
var url = window.location.href;

var Matches = RegExp(checkURL.join('|')).exec(url);

if (Matches) {
    alert('your url contains the string ' + Matches[0]);
}

示例jsFiddle

于 2013-10-15T09:30:05.360 回答
0

循环可以做到这一点:

for(var p in checkURL){
   if(window.location.pathname.indexOf(checkURL[p]) > -1){
      alert("your url contains the string");
   }
}
于 2013-03-11T17:15:08.557 回答
0

您可以将测试数据转换为地图

var checkURL = {'abc123':'', 'abc124':'', 'abc125':''};
var url = window.location.pathname.split('/');

for(var i=0;i<url.length;i++){
var targetUrl=url[i];
if(typeof checkURL[targetUrl]!=='undefined'){
alert(targetUrl);
}
}
于 2013-03-11T17:13:17.327 回答
0

作为参考,这个优雅的解决方案:

var checkURL = ['abc123', 'abc124', 'abc125'];

var inArray = checkURL.some(function(el) {
    return ~location.href.indexOf(el);
}); // true/false

注意:该some方法需要垫片!

于 2013-03-11T17:13:28.433 回答
0

当您在问题中标记 jquery 时,请使用 each() 函数

jQuery.each(checkURL, function(i,v) {
if(window.location.href.indexOf(checkURL[i]) > -1) {
           alert("your url contains the string " + checkURL[i]);
        }
});

无需使用 i 和 v 变量作为描述键值对

于 2013-03-11T17:16:43.657 回答