detectmobilebrowsers.com在nginx上提供此行用于移动检测:
if ($http_user_agent ~* "(android|bb\d+|meego).+mobile| ...
要启用平板电脑检测,他们会提供以下一行:
|android|ipad|playbook|silk
如何检测手机或平板电脑,比如更精细的谷物?问题是droid手机有一个用户代理字符串,如“Android ... Mobile”,平板电脑只有“Android”。
我查看了nginx if语句。没有和运算符,并且如果缺少文档则嵌套。我看到了NOT OR正则表达式,并使用它来处理解决方案:
答案 0 :(得分:1)
如果您平移以匹配未跟android
字跟的mobile
,则可以使用基于negative lookahead的正则表达式模式:
android(?!.*mobile)
或具有单词边界的版本仅检查和匹配整个单词:
\bandroid\b(?!.*\bmobile\b)
请参阅regex demo
否定前瞻包含.*mobile
模式,这意味着如果android
后跟任何0+字符后跟mobile
,则匹配失败。