扭转简单的Javascript用户代理逻辑

时间:2011-01-16 04:23:44

标签: javascript logic

有人可以帮我扭转这种逻辑吗?

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {}

我希望声明如下: 如果用户代理不是iPhone或不是iPod

现在我只是将第一个IF留空并使用ELSE,但我知道必须有更好的解决方案。

是否与.match相反?

谢谢!

3 个答案:

答案 0 :(得分:4)

只是为了咯咯笑,我会补充说,由于De Morgan's Law的属性,有两种方法可以做到这一点。

首先,意思是“如果它不是iPhone而且它不是iPod”(如另一个答案中所述):

if((!navigator.userAgent.match(/iPhone/i)) && (!navigator.userAgent.match(/iPod/i))) {
    // Do something
}

第二,意思是“如果它不是iPhone或iPod”,这只是对当前整个陈述的逻辑否定:

if(!(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
    // Do something
}

答案 1 :(得分:3)

if((!navigator.userAgent.match(/iPhone/i)) && (!navigator.userAgent.match(/iPod/i))) {}

答案 2 :(得分:0)

在此处使用此行:

var isiOS = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)/i) != null ? true : false;