我有一个正则表达式试图查看浏览器是否为 IE 9 或更高版本。我有一个正则表达式,如果它是 IE 9 而不是 IE 10,它可以识别。
努力识别 IE 9:MSIE ([0-9]{1,}[\.0-9]{0,})
一些 IE 10 用户代理文本:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
正则表达式目前无法识别 IE 9 或 10:MSIE ^(?:0|[1-9][0-9]?)$
这是在 javascript 中完成的,所以这里是代码:
function IsIE9() {
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,})");
var re = new RegExp("MSIE ^(?:0|[1-9][0-9]?)$");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return parseInt(rv) >= 9;
}
有人可以帮我解决一个可以识别 IE 版本并返回数值的正则表达式(我不想在那里对 IE 值进行硬编码,因此不必为每个新的 IE 版本更新它。
- - 更新 - -
这两个答案似乎都有效。我用这个为我的正则表达式获取版本号:MSIE ((?:0|[1-9][0-9]?))
它返回整数值。