Como outras pessoas já observaram, a detecção de recursos é preferível à verificação de um navegador específico. Uma razão é que a sequência do agente do usuário pode ser alterada. Outro motivo é que a string pode mudar e quebrar seu código em versões mais recentes.
Se você ainda quiser fazer o teste e testar qualquer versão do Safari, sugiro usar este
var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
navigator.userAgent &&
navigator.userAgent.indexOf('CriOS') == -1 &&
navigator.userAgent.indexOf('FxiOS') == -1;
Isso funcionará com qualquer versão do Safari em todos os dispositivos: Mac, iPhone, iPod, iPad.
Editar
Para testar no seu navegador atual: https://jsfiddle.net/j5hgcbm2/
Editar 2
Atualizado de acordo com os documentos do Chrome para detectar o Chrome no iOS corretamente
Vale ressaltar que todos os navegadores no iOS são apenas invólucros para o Safari e usam o mesmo mecanismo. Veja o comentário do bfred.it sobre sua própria resposta neste tópico.
Editar 3
Atualizado de acordo com os documentos do Firefox para detectar corretamente o Firefox no iOS