2011-01-20 14 views
0

IE9ベータ版では以下の機能が動作しない理由はありますか? IE8の罰金(または互換モードを実行しているIE9):RegexはIE9で動作しません

if(b.msie){ 
    b.ver = /MSIE (\d+(.\d+)?)/.exec(ua)[1]; 
}else if(b.mozilla){ 
    b.ver = /Firefox\/(\d+(.\d+)?)/.exec(ua)[1]; 
}else if(b.opera){ 
    b.ver = /Opera\/? ?(\d+(\.\d+)?)/.exec(ua)[1]; 
}else if(b.safari){ 
    b.ver = /Version\/(\d+(\.\d+)+)/.exec(ua)[1]; 
}else if(b.chrome){ 
    b.ver = /Chrome\/(\d+(\.\d+)+)/.exec(ua)[1]; 
} 
+4

「うまくいかない」とは何ですか?エラーメッセージ?予期せぬ結果ですか?何も起こりません?コンピュータが爆発する? –

+0

紅茶の代わりにコーヒーを作るのですか? –

+2

IE9が以前のバージョンとは違ってユーザーエージェントを報告している可能性があります。また、ブラウザの検出はおそらく悪い考えであると考えていますか?このような問題のために、機能の検出は通常ブラウザの検出よりも優れています。ブラウザの検出は、新しいバージョンがリリースされたときに中断される傾向があります。プラスのユーザーエージェント文字列は、オーバーライドすることも、完全にブロックすることもできます。つまり、ブラウザ検出スクリプトをユーザーがだますことができます。 – Spudley

答えて

0

あなたはしたくないString.match()?例えばb.ver = ua.match(/MSIE (\d+(\.\d+)?)/)[1];
また、文字クラス外の.をエスケープする必要があります。

関連する問題