nginx设备检测Android手机与Android平板电脑

时间:2016-09-02 12:53:19

标签: regex nginx

detectmobilebrowsers.com在nginx上提供此行用于移动检测:

if ($http_user_agent ~* "(android|bb\d+|meego).+mobile| ...

要启用平板电脑检测,他们会提供以下一行:

|android|ipad|playbook|silk

如何检测手机或平板电脑,比如更精细的谷物?问题是droid手机有一个用户代理字符串,如“Android ... Mobile”,平板电脑只有“Android”。

我查看了nginx if语句。没有和运算符,并且如果缺少文档则嵌套。我看到了NOT OR正则表达式,并使用它来处理解决方案:

Regular Expressions: Is there an AND operator?

1 个答案:

答案 0 :(得分:1)

如果您平移以匹配未跟android字跟的mobile,则可以使用基于negative lookahead的正则表达式模式:

android(?!.*mobile)

或具有单词边界的版本仅检查和匹配整个单词:

\bandroid\b(?!.*\bmobile\b)

请参阅regex demo

否定前瞻包含.*mobile模式,这意味着如果android后跟任何0+字符后跟mobile,则匹配失败。

相关问题