我有一个数组:
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>
答案 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。