0

次の行に沿ったユーザー向けのメッセージ(javascriptで実装)を提示しています

お使いのブラウザは古すぎて私のページを表示できません。現在実行中:

ユーザーのブラウザの名前が続きます。

残念ながら、navigator.userAgent通常は次のようになります。

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

私が吐き出す必要があるのは、その唯一のビットですMSIE 8.0

userAgent文字列の正気で愚かな人に優しいサニタイズを多かれ少なかれ与える正規表現がどこかにありますか? これは、実際に使用されているブラウザーの大部分で機能します。

4

1 に答える 1

0

userAgent からブラウザーの名前とバージョンを取得するには、次のようにします。

function identifyBrowser() {
    var regexps = {
            'Chrome': [ /Chrome\/(\S+)/ ],
            'Firefox': [ /Firefox\/(\S+)/ ],
            'MSIE': [ /MSIE (\S+);/ ],
            'Opera': [
                /Opera\/.*?Version\/(\S+)/,
                /Opera\/(\S+)/
            ],
            'Safari': [ /Version\/(\S+).*?Safari\// ]
        },
        re, m, browser, version;

    userAgent = navigator.userAgent;
    elements = 2;
    for (browser in regexps)
        while (re = regexps[browser].shift())
            if (m = userAgent.match(re)) {
                version = (m[1].match(new RegExp('[^.]+(?:\.[^.]+){0,' + --elements + '}')))[0];
                return browser + ' ' + version);
            }
}
于 2012-12-02T05:43:21.600 に答える