如何检测用户代理iOS 6和所有次要版本?

可能重复:
什么是iOS 6用户代理string?

有任何想法做一个简单的正则expression式或东西? iPhone和iPad之间的区别也不错。

任何帮助build立一些正则expression式赞赏:)

编辑:用户代理string: 什么是iOS 6用户代理string? 这个问题不同于可能的重复,因为我想根据我已经知道的信息来构build一个正则expression式(可以在可能的重复中find)

CHANGELOG

20/01/2017

  • UAstring更新:141匹配,0部分匹配和797无效行

  • 即使提及iPhone,“Mobile Safari 1.1.3(iPhone U;像Mac OS X; CPU的CPU)”也被认为是无效的。 实际上,在可疑的iPhone术语之后,分号丢失了。

  • Safari 8+尚未出现在UserAgentString.com上

必备条件

  • 以下正则expression式是通用的。
  • 它将匹配在移动设备上运行的Safari用户代理string(SUAS)(请参阅下面支持的设备列表)。
  • 正则expression式基于UserAgentString.com在20/01/2017提供的已知SUAS。

正则expression式

 ^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+(?:\.\d+)+\s*)(?:iPhone(?:\s+Simulator)?|iPad|iPod);\s*(?:U;\s*)?(?:[az]+(?:-[az]+)?;\s*)?CPU\s*(?:iPhone\s*)?(?:OS\s*\d+_\d+(?:_\d+)?\s*)?(?:like|comme)\s*Mac\s*O?S?\s*X(?:;\s*[az]+(?:-[az]+)?)?\)\s*)?(?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)?(?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)?(?:(?:Version|CriOS)/\d+(?:\.\d+)+\s*)?(?:Mobile/\w+\s*)?(?:Safari/\d+(?:\.\d+)*.*)?$ 

支持的设备列表

  • 苹果手机
  • iPhone模拟器
  • iPad的
  • iPod的

说明/定制

C之前的行可以自定义。

  1. ^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+(?:\.\d+)+\s*) C 2. (?:iPhone(?:\s+Simulator)?|iPad|iPod);\s* 3. (?:U;\s*)? 4. (?:[az]+(?:-[az]+)?;\s*)? 5. CPU\s* 6. (?:iPhone\s*)? C 7. (?:OS\s*\d+_\d+(?:_\d+)?\s*)? C 8. (?:like|comme)\s*Mac\s*O?S?\s*X 9. (?:;\s*[az]+(?:-[az]+)?)? 10. \)\s*)? 11. (?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)? C 12. (?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)? C 13. (?:(?:Version|CriOS)/\d+(?:\.\d+)+\s*)? 14. (?:Mobile/\w+\s*)? 15. (?:Safari/\d+(?:\.\d+)*.*)?$ 

UAstring可能有所不同,因此为了接受UAstring尽可能引入此行。
第2行。您可以在此处指定接受设备的pipe道分隔列表。
(……)
第7行。版本在这里指出。 如果您想要特殊版本,请更改此行。 不要忘记更新第13行 。 例如,匹配iOS 5.xy使用(?:OS\s*5_\d+_\d+\s*)?
第8行。翻译了一些用户代理string。 这个词可能被翻译成外语。 正则expression式现在支持EnglishFrench 。 如果遇到其他语言,请修改此行。 不要忘记更新第12行
(……)
第8行。
例如,匹配iOS 5.xy使用(?:Version/5\.\d+\.\d+)?\s*)?