首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据用户字符串检查IE是否为11,并从代理字符串中获取版本

问根据用户字符串检查IE是否为11,并从代理字符串中获取版本
EN

Stack Overflow用户
提问于 2016-01-23 17:42:00
回答 2查看 820关注 0票数 1

我已经能够检测浏览器是否为IE8,并使用以下代码从用户代理字符串中获取版本:

代码语言:javascript
复制
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,有没有办法只使用一个正则表达式字符串就能满足这一需要?

EN

回答 2

Stack Overflow用户

发布于 2016-01-23 18:20:37

你可以试试这个:

代码语言:javascript
复制
(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:)(\d+)

来源:https://stackoverflow.com/a/19987665/1203816

它应该匹配IE的每个版本,而不仅仅是8和11。版本号是移位的,所以IE 8是4,因此IE将是7。

票数 0
EN

Stack Overflow用户

发布于 2016-01-23 19:18:51

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

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

IE10 compat模式下的IE11与IE10不兼容( JavaScript中缺少一些方法)。例如,在这种情况下,您的浏览器检测将失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34961905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档