移动重定向代码发送到错误的位置

时间:2018-04-25 05:18:42

标签: javascript jquery

我试图弄清楚为什么我的代码将桌面浏览器发送到移动网站。我在桌面上使用的浏览器,它发送到移动网站。

我也试过删除else语句,但没有快乐,仍然是同样的问题。

如果有人能指出我的错误,我将不胜感激。非常感谢

undefined

1 个答案:

答案 0 :(得分:3)

实际上navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/);正在返回null而不是true/false

要匹配正则表达式,请创建一个RegExp对象,并使用test()方法。

var mobile = new RegExp(/(iPhone|iPod|iPad|Android|BlackBerry)/);
if(mobile.test(navigator.userAgent)){
  console.log("Mobile");
  // User-Agent is IPhone, IPod, IPad, Android or BlackBerry
}else{
  console.log("Desktop");
  // Any other useragent. 
}

str.match()的问题是,当找不到匹配时,它会返回null&找到匹配项时array of matches。因此,无法使用if/else直接处理结果。您需要使用typeof检查返回类型,然后执行相应的操作。

虽然RegExp.test()非常直接并且根据匹配与否返回true/false