2013-03-11 48 views
1

我有一個數組:如何檢查是否從一個數組的字符串之一是在URL/window.location.pathname

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

我如何檢查是否在存在的一個字符串數組window.location.pathname?

我個人知道我可以使用:for循環的線性搜索

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

回答

5

使用。

$(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]); 
     } 
    } 
}); 
+0

太好了,謝謝! – JayDee 2013-03-11 17:13:28

+0

這真棒。感謝這一點。 – breezy 2016-08-10 19:31:50

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

而對於參考這個優雅的解決方案:

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

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

注意:這個要求方法爲some方法!

0

環路可以這樣做:在你的問題

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

正如您所標記的jQuery,使用每個()函數

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

無需使用I和V變量作爲描繪鍵值對

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

相關問題