I've seen a detecting code when I was looking over developer pages of IE8:
function getInternetExplorerVersion()
{
var rv = -1; // Return value assumes failure
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
I think that there are lots of better ways to detecting browser version.Here is my one-line solution;
var IEVersion = /msie/i.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/ie (\d)/i)[1]) || -1
We can use it to get Firefox version with some modifying;
/firefox/i.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/firefox\/(\d)/i)[1]) || -1
As you see, test method of regular expressions is really useful, I had seen this technique at Hakan Bilgin's awesome extend.js library firstly.