Ответ 1
CHANGELOG
20/01/2017
Обновление строк UA: совпадение 141, неполное совпадение и 797 недопустимых строк
"Mobile Safari 1.1.3 (iPhone U, CPU, такой как Mac OS X; ru)" считается недействительным, даже если он упоминает iPhone. Фактически, после термина
iPhone
отсутствует подозрительная точка с запятой.Safari 8+ пока не отображается на UserAgentString.com
ПРЕДПОСЫЛКИ
- Следующее регулярное выражение является общим.
- Он будет соответствовать строкам пользовательских агентов Safari (SUAS), запущенным на мобильном устройстве (см. ниже список поддерживаемых устройств).
- Регулярное выражение основано на известных SUAS UserAgentString.com от 20/01/2017.
REGEX
^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+(?:\.\d+)+\s*)(?:iPhone(?:\s+Simulator)?|iPad|iPod);\s*(?:U;\s*)?(?:[a-z]+(?:-[a-z]+)?;\s*)?CPU\s*(?:iPhone\s*)?(?:OS\s*\d+_\d+(?:_\d+)?\s*)?(?:like|comme)\s*Mac\s*O?S?\s*X(?:;\s*[a-z]+(?:-[a-z]+)?)?\)\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
- iPhone Simulator
- 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. (?:[a-z]+(?:-[a-z]+)?;\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*[a-z]+(?:-[a-z]+)?)?
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+)*.*)?$
строка 1. Строки UA могут отличаться, поэтому эта строка вводится для максимально возможного принятия строк UA.
строка 2.. Здесь можно указать список принятых устройств, разделенных каналами.
(...)
строка 7. Здесь указывается версия. Измените эту строку, если вы хотите использовать специальную версию. Не забудьте также обновить строку 13. Например, сопоставление iOS 5.x.y использует (?:OS\s*5_\d+_\d+\s*)?
.
строка 8. Некоторые строки пользовательского агента переводятся. Слово like
может быть переведено на иностранный язык. Регулярное выражение теперь поддерживает English
и French
. Адаптируйте эту строку, если вы сталкиваетесь с другими языками. Не забудьте обновить строку line 12.
(...)
строка 12. См. строка 8.
строка 13. См. строка 7. Например, сопоставление iOS 5.x.y использует (?:Version/5\.\d+\.\d+)?\s*)?
.