ブラウザ検出を行わないでください! 壊れますし、トラブルの原因になります。
IE11 には、以前の IE バージョンとはまったく異なるユーザー エージェント文字列があります。「MSIE」テキストは含まれなくなりました。これが、検出コードが機能しない理由です。
ここで、彼らがこれを行った理由は意図的であったことに注意することが重要です。彼らは、このようなブラウザ検出スクリプトを壊したいと考えていました。
IE11 で動作するようにコードを変更することは可能ですが、IE12 が出てきたときに同じ問題が再び発生する可能性があるため、これを行わないことを強くお勧めします。
では、なぜブラウザ検出スクリプトを破ろうとしたのでしょうか? シンプル: IE11 には以前のバージョンのバグがなく、多くの新機能があるためです。したがって、IE に特定のバグや不足している機能があるためにブラウザー検出を行っており、ブラウザー検出に基づいてそれらの問題を修正するコードを持っている場合、そのコードは実際には、修正が不要な IE11 でさらに悪い問題を引き起こす可能性があります。
IE11 ではスクリプトが壊れていますが、同じロジックがすべてのブラウザーとすべてのバージョンに適用されます。ブラウザとバージョンを検出することは、ほとんどの場合間違っています。
サポートしたい特定の機能が古い IE バージョン (または他の古いブラウザー) にない場合は、ブラウザー検出を使用して解決しないでください。代わりに機能検出を使用する必要があります。
機能の検出とは、ブラウザをチェックして、使用したい特定の機能をサポートしているかどうかを確認することです。これを行う最も一般的な方法は、Modernizrライブラリを使用することです。彼らのサイトのドキュメントは、それを設定する方法を案内します。
古いバージョンの IE には検出が困難なバグがいくつかあります。これらのいくつかのケースでは、最後の手段としてブラウザー検出を使用することが有効ですが、これらのケースは実際には IE6 以前のみに限定されます。IE7 の場合もあるかもしれません。しかし、IE8以降のみを見ていると質問で述べたので、それは当てはまりません。
機能検出に固執します。より信頼性が高く、より優れた方法であり、新しいブラウザー バージョンがリリースされたときに突然機能しなくなることはありません。