一个小巧实用的User-Agent解析库

UAParser.js

有时我们需要判断客户端的一些信息,如浏览器的类型、型号等,然后进行相应处理,例如,如果是使用微信访问的,就怎么怎么处理。

这就需要从 User-Agent中获取相应信息,UAParser.js 就是一个专业的 User-Agent 解析工具库。

主要特点:

  • 功能全,使用方便

封装好了方法,可以方便的获取 浏览器的类型、布局引擎、操作系统、cpu类型、设备类型

  • 浏览器、node.js中都可以使用

可用范围广:jQuery/Zepto 插件、Bower/Meteor包、 RequireJS/AMD模块

  • 非常小巧

只有11Kb,如果使用gzip压缩的话只有4Kb

  • 不需要任何依赖

示例

浏览器中使用

<script type="text/javascript" src="dist/ua-parser.min.js"></script>
<script type="text/javascript">
    var parser = new UAParser();
    var result = parser.getResult();
    
    console.log(result.browser);        
    console.log(result.device);         
    console.log(result.os);             
    console.log(result.os.version);   
    console.log(result.engine.name);   
    console.log(result.cpu.architecture);   
</script>    

nodejs中使用

安装

$ npm install ua-parser-js

使用

var http = require('http');
var parser = require('ua-parser-js');

http.createServer(function (req, res) {
    var ua = parser(req.headers['user-agent']);
    res.end(JSON.stringify(ua, null, '  '));
})
.listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

主要方法

获取整体信息

  • getResult()

获取所有信息

{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }

  • getUA()

获取原始User-Agent字符串

获取局部信息

  • getBrowser()

{ name: '', version: '' }

  • getDevice()

{ model: '', type: '', vendor: '' }

  • getEngine()

{ name: '', version: '' }

  • getOS()

{ name: '', version: '' }

小结

解析User-Agent的应用场景可能并不是很多,但可以对UAParser.js有个印象,在需要时能够快速想起他,帮助我们方便的实现需求。

项目地址

https://github.com/faisalman/ua-parser-js

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

Visual Studio 2008 每日提示(二十四)

#231、如何找到最后一次设置的环境保存的位置? 原文链接:Did you know… How to find what development settin...

3707
来自专栏游戏杂谈

rtx登录内网系统

公司内部使用rtx进行沟通和交流,经常遇到订餐的问题,用php写了一个订餐系统,实现rtx上点击链接打开系统就自动登录了,无需再次输入用户名和密码。

3001
来自专栏pythonlove

FTP使用MariaDB完成虚拟用户认证

文件传输协议(英文:File Transfer Protocol,縮寫:FTP)是用於在網絡上進行文件傳輸的一套標準協議。它属于网络传输协议的应用层。FTP是一...

1094
来自专栏wireboy编程加油站

用Vue.js搭建一个小说阅读网站

这是一个使用vue.js + mint-ui + .net core api的小说网站。

2900
来自专栏乐沙弥的世界

快速安装及部署DRBD

921
来自专栏圣杰的专栏

ASP.NET Core Web App应用第三方Bootstrap模板

作为后端开发来说,前端表示玩不转,我们一般会选择套用一些开源的Bootstrap 模板主题来进行前端设计。那如何套用呢?今天就简单创建一个ASP.NET Cor...

2831
来自专栏ImportSource

GitHub不count contributions的解决办法

最近在github上提交代码,发现push上去代码以后,在Public activity 里是有记录的,如下: ? 但在Contribution activi...

3456
来自专栏我是攻城师

Java程序排查问题利器之Btrace

4244
来自专栏finleyMa

SSH 技巧

SSH 是 Linux 下进行远程连接的基本工具。 一般情况下我们可以通过 ssh username@xxx.xxx.xxx.xxx 登录远程服务器,如果要管...

1563
来自专栏开源优测

[快学Python3]开发工具

Python有丰富的开发工具,本书不一一进行介绍,只推荐大家使用PyCharm,本书接下来章节的示例代码均基于PyCharm社区版进行演示。 下载 下载地址: ...

3287

扫码关注云+社区

领取腾讯云代金券