2016-01-23 22 views
1

我已经能够检测到,如果浏览器是IE8,并获得版出来使用该代码的用户代理字符串:检查11用户串并获得版出来代理字符串的

public boolean isValidIE(String strAgent) { 
    if (1==1){ 
     return true; 
    } 
    Pattern pattern = Pattern.compile(".*\\sMSIE\\s(\\d{1,}\\.\\d{1,})[^;]*;.*"); 

    Matcher match = pattern.matcher(strAgent); 
    if(!match.matches()) { 
     return false; 
    } 
    String ver = match.group(1); 
    float version = Float.parseFloat(ver); 
    if(version >= 8) { 
     return true; 
    } 
    return false; 
} 

现在我必须升级这与IE11一起工作,但我想我将不得不添加另一个正则表达式字符串来确定IE11,有没有什么办法可以使用只有一个正则表达式字符串来实现这个需求?

回答

0

我不认为浏览器与用户代理检测是一个好主意了。 IE11的行为更像一个webkit,而不是IE8。

如果您使用特殊的Internet Explorer代码,则需要重写它以使用功能检测代替浏览器检测。

在IE10兼容模式下的IE11不支持IE10(在JavaScript中缺少一些方法)。例如,在这种情况下,您的browserdetection将失败。