Як уже зазначали інші, перевагу виявлення функцій віддається перевазі, ніж перевірка конкретного браузера. Однією з причин є те, що рядок агента користувача може бути змінений. Ще одна причина полягає в тому, що рядок може змінювати та порушувати ваш код у новіших версіях.
Якщо ви все ще хочете це зробити і перевірити будь-яку версію Safari, я б запропонував скористатися цією
var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
navigator.userAgent &&
navigator.userAgent.indexOf('CriOS') == -1 &&
navigator.userAgent.indexOf('FxiOS') == -1;
Це працюватиме з будь-якою версією Safari на всіх пристроях: Mac, iPhone, iPod, iPad.
Редагувати
Для тестування у вашому поточному веб-переглядачі: https://jsfiddle.net/j5hgcbm2/
Редагувати 2
Оновлено згідно з документами Chrome, щоб правильно виявити Chrome на iOS
Варто зазначити, що всі браузери на iOS - це просто обгортки для Safari і використовують один і той же двигун. Дивіться коментар bfred.it щодо власної відповіді в цій темі.
Правка 3
Оновлено згідно з документами Firefox, щоб правильно виявити Firefox на iOS