先附上部分浏览器的userAgent

  • 火狐: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

  • 谷歌: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

  • Opera: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 OPR/46.0.2597.57
    Opera/9.27 (Windows NT 5.2; U; zh-cn)

  • Edge: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063

  • IE 11: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; InfoPath.3; rv:11.0) like Gecko

  • IE 10: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
  • IE 9.0: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;
  • IE 8.0: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
  • IE 7.0: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
  • IE 6.0: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
  • IE 5.0: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)

大概了解一下
操作系统标识

渲染引擎
显示浏览器使用的主流渲染引擎有:Gecko、WebKit、KHTML、Presto、Trident、Tasman等,格式为:渲染引擎/版本信息

判断浏览器类型
通过匹配userAgent中的字段来判断浏览器类型

//取得浏览器的userAgent字符串
var userAgent = navigator.userAgent;
//判断是否Opera浏览器
var isOpera = userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR");
//判断是否Edge浏览器
var isEdge = userAgent.indexOf("Edge") > -1;
//判断是否Firefox浏览器
var isFF = userAgent.indexOf("Firefox") > -1;
//判断是否Safari浏览器
var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1;
//判断Chrome浏览器
var isChrome = userAgent.indexOf("Chrome") > -1 && !isEdge && !isOpera;
//判断是否IE浏览器
var isIE = userAgent.indexOf("MSIE") || userAgent.indexOf("Trident");

封装成js方法,这里通过顺序避免了一些重复判断

//判断浏览器类型
function getBrowserType() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串if (userAgent.indexOf("Firefox") > -1) {return "Firefox";} else if (userAgent.indexOf("Edge") > -1) {return "Edge";} else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {return "Opera";} else if (userAgent.indexOf("Chrome") > -1) {return "Chrome";} else if (userAgent.indexOf("Safari") > -1) {return "Safari";} else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {return "IE";}
}

判断浏览器类型和版本
浏览器版本通过正则匹配获取
以火狐浏览器为例

//获取浏览器及版本,match()方法返回的为数组,此处为["Firefox/54.0"]
var browser = userAgent.match(/firefox\/[\d.]+/gi);
//获取主版本数值
var version = browser[0].match(/[\d]+/)[0];
return "Firefox "+version;  //Firefox 54

整合成JS方法

//判断浏览器类型和版本
function getBrowserVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串if (userAgent.indexOf("Firefox") > -1) {var version = userAgent.match(/firefox\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Firefox "+version;} else if (userAgent.indexOf("Edge") > -1) {var version = userAgent.match(/edge\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Edge "+version;} else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {if (userAgent.indexOf("Opera") > -1) {var version = userAgent.match(/opera\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Opera "+version;}if (userAgent.indexOf("OPR") > -1) {var version = userAgent.match(/opr\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Opera "+version;}} else if (userAgent.indexOf("Chrome") > -1) {var version = userAgent.match(/chrome\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Chrome "+version;} else if (userAgent.indexOf("Safari") > -1) {var version = userAgent.match(/safari\/[\d.]+/gi)[0].match(/[\d]+/)[0];return "Safari "+version;} else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {if (userAgent.indexOf("MSIE") > -1) {var version = userAgent.match(/msie [\d.]+/gi)[0].match(/[\d]+/)[0];return "IE "+version;}if (userAgent.indexOf("Trident") > -1) {var versionTrident = userAgent.match(/trident\/[\d.]+/gi)[0].match(/[\d]+/)[0];var version = parseInt(versionTrident) + 4;return "IE "+version;}}
}

JS中正则表达式用/代替引号,/[\d]+/即为由大于0个数字组成,gi是全局检查,忽略大小写。

使用userAgent区分浏览器版本相关推荐

  1. 根据user-agent 区分浏览器

    使用各种浏览器扫描这个url 根据user-agent  区分各种浏览器 (1)微信 'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Linux; Andro ...

  2. 根据userAgent获取浏览器/操作系统/设备类型等信息

    文章目录 根据userAgent获取浏览器/操作系统/设备类型等信息 一.背景 二.效果展示 Android:userAgent解析出来的信息 ios:userAgent解析出来的信息 windows ...

  3. 区分浏览器,判断浏览器版本

    1.用JS判断浏览器是否是IE9以下,处理可能遇到的兼容性问题,或者给出浏览器版本过低的升级提醒.   if(navigator.appName == "Microsoft Internet ...

  4. JS 判断浏览器版本

    JS 判断浏览器版本 1.JS 区分各个浏览器(方法一) var browser={versions:function(){var u = navigator.userAgent, app = nav ...

  5. 检测浏览器版本(综合整理)

    浏览器版本号检测 本文检测部分来自于Missyouzhang的专栏 浏览器的navigator.userAgent来自于网络 完整的用户代理字符串检测脚本来自于高程3P242 浏览器的navigato ...

  6. 原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari(亲测可用)

    浏览器类型及版本判断在开发中是比较常见的使用场景,之前用var ua = navigator.userAgent.toLowerCase()来判断浏览器的内核,发现chrome和edge浏览器无法区分 ...

  7. .NET 获取客户端的操作系统版本、浏览器版本和IP地址

    我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...

  8. 通过浏览器navigator判断浏览器版本或者手机类型判断微信访问

    javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息.或者判 ...

  9. JavaScript 技术篇-js代码获取当前操作系统信息、浏览器版本信息实例演示,windows NT版本对照表

    > navigator.userAgent < "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHT ...

最新文章

  1. 【每日一算法】最常见的单词
  2. InvisionApp学习
  3. nssl1458-HR 的疑惑【枚举】
  4. Apache Cassandra和Java入门(第二部分)
  5. 详解WINCE的控制面板
  6. Github PageHelper 原理解析
  7. 高颜值可定制在线绘图工具
  8. 无心剑中译罗素《此生何求?》
  9. 071 time模块
  10. 【新书推荐】【2021】基于多源信息融合的航天器自主导航技术
  11. python 拼接 遥感影像_Python干货 | 遥感影像拼接
  12. ubuntu桌面进不去的解决办法
  13. 导入com.google.android.maps.jar安装包问题
  14. 使用 axios 发送 http 请求
  15. String字符串转Date日期
  16. 一键复制 html,最简单js代码实现一键复制文字
  17. Markdown取消超链接的下划线
  18. 深度学习训练遇到的坑(一)
  19. 微软商店Microsoft Store下载安装找这个
  20. 酷开系统让父母的老年生活也开始智能化

热门文章

  1. 知数堂MySQL DBA在线培训第八期招生中
  2. JS+asp.net在线裁剪图片源码
  3. unity学习之动画状态切换后角色沉入地面里面
  4. vs2019编译错误:LINK : fatal error LNK1104: 无法打开文件“atls.lib”
  5. 服务器开发——定时器
  6. 硬核拆台!宏彦获水,一脸懵逼:百度李彦宏遭当众泼水,一开始肇事者就在全程直播!!
  7. tcp服务器修改端口号,RAKsmart服务器:Windows修改远程端口号的图文教程
  8. 计算机office用的是哪个版本,小编教你看office是哪个版本_查看office是哪个版本的方法...
  9. python如何把矩阵转换为图片_如何将numpy数组转换为(并显示)图片
  10. [复变函数]第24堂课 6.3 辐角原理