Mi riporta come versione:

codice:
5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.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)
Da qui capisco che non funziona perchè vede la versione come 5.0 (o forse addirrittura vede la versione come tutta una stringa che comunque non è un valore uguale o maggiroe di 9)

Però come estrapolo il 9.0 per fargli capire qual'è effettivamente la versione?

edit: trovata la soluzione, grazie a questo link

codice:
var chrome = (/Chrome/.test(navigator.userAgent))?1:0;
var ie=(/MSIE (\d+\.\d+);/.test(navigator.userAgent))?1:0;
var ieversion=new Number(RegExp.$1);
if (ie) {
	    if (ieversion >= 9.0 )
			alert('Stai usando Internet Explorer! Scarica Mozilla Firefox ;)');
		else
			alert('Stai usando una versione preistorica di IE');
			
		}
if (chrome) {
	alert ("Stai usando Google Chrome! Scarica Mozilla Firefox ;)");
}
var s_width =''; 
var s_height =''; 
s_width=window.screen.width 
s_height=window.screen.height
if (s_width != "1920") {alert("Questo sito è ottimizzato per una risoluzione di 1920x1080")
					}
Anche se per la verità non ho capito cosa fa
codice:
var ieversion=new Number(RegExp.$1);
Cioè ho capito che estrapola il 9.0 dalla stringa, ma non ho capito in base a cosa. Come fa a farlo diciamo.