如何检查数组中的某个字符串是否在URL / window.location.pathname中

时间:2013-03-11 17:07:24

标签: javascript jquery

我有一个数组:

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> 

7 个答案:

答案 0 :(得分:6)

使用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]);
        }
    }
});

答案 1 :(得分: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]);
        }
    }
});

答案 2 :(得分: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);
}
}

答案 3 :(得分:0)

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

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

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

注意:这需要填充some方法!

答案 4 :(得分:0)

循环可以做到这一点:

for(var p in checkURL){
   if(window.location.pathname.indexOf(checkURL[p]) > -1){
      alert("your url contains the string");
   }
}

答案 5 :(得分: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变量作为描述键值对

答案 6 :(得分:0)

这是一个使用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