Loading repository data…
Loading repository data…
jeeinn / repository
UAFormat.js - Another lightweight JavaScript-based user-agent string parser library to detect browser, layout engine, operating system, and device type/model/vendor, entirely from user-agent string. Supports browser & node.js environment.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
重复造轮子,一个userAgent解析器UAFormat.js(参考UAParser.js)
Another wheel,an userAgent parser UAFormat.js (refer to the UAParser.js)
致力于更符合中国特色的浏览器userAgent字符串识别与探测!欢迎添砖加瓦
setUA()getUA()getOS()getBrowser()getDevice()getEngine()getResult()调用getOS()、getBrowser()、getEngine() 返回 { name:'', version:'' }
调用getDevice() 返回 { type:'', model:'', vendor:'' }
'device.type'可能值,支持自定义:
desktop、mobile、tablet、smarttv、wearable、embedded、console
'device.vendor'可能值,支持自定义:
Meizu、Samsung、Lenovo、Acer、Alcatel、Amazon、HP、 HTC、Huawei、Jolla、LG、Microsoft、Motorola、Nexian、 Apple、Nintendo、Nokia、Nvidia、Ouya、Palm、Panasonic、 Archos、Asus、BenQ、BlackBerry、Dell、GeeksPhone、Google、 Polytron、RIM、Sharp、Siemens、Sony-Ericsson、Sprint、Xbox、 ZTE
'device.model' 动态解析,支持自定义
在src/ua-format.js的uaRules对象中添加相应的解析规则
如getOS方法中的os的相应信息,在osRules中添加如下一个规则对象
{
patterns:[/microsoft\s(windows)\s(vista|xp)/i], // Windows (iTunes)
defaults:[[NAME,'Windows'],[VERSION]]
}
<!doctype html>
<html>
<head>
<script type="text/javascript" src="ua-format.min.js"></script>
<script type="text/javascript">
var formater = new UAFormat();
// 默认使用当前浏览器: window.navigator.userAgent
console.log(formater.getResult());
/*
/// 输出结果:
{
ua: "",
browser: {
name: "",
version: ""
},
engine: {
name: "",
version: ""
},
os: {
name: "",
version: ""
},
device: {
model: "",
type: "",
vendor: ""
}
}
*/
// 自定义ua
var uaString = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 Chromium/15.0.874.106 Chrome/15.0.874.106 Safari/535.2";
formater.setUA(uaString);
var result = formater.getResult();
console.log(result.browser); // {name: "Chromium", version: "15.0.874.106"}
console.log(result.device); // {model: "", type: "", vendor: ""}
console.log(result.os); // {name: "Ubuntu", version: "11.10"}
console.log(result.os.version); // "11.10"
console.log(result.engine.name); // "WebKit"
var uaString2 = 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11';
//链式调用
console.log(formater.setUA(uaString2).getDevice().model); // "PlayBook"
console.log(formater.getOS()); // {name: "RIM Tablet OS", version: "1.0.0"}
console.log(formater.getBrowser().name); // "Safari"
</script>
</head>
<body>
</body>
</html>
npm install ua-format-js --save
js文件示例
var formater = require('ua-format-js').UAFormat();
var uaString = 'Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; ONE A2001 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/6.0 Mobile Safari/537.36';
formater.setUA(uaString);
console.log(formater.getResult());
// result
// {
// ua: 'Mozilla/5.0(Linux;U;Android6.0.1;zh-cn;ONEA2001Build/MMB29M)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/37.0.0.0MQQBrowser/6.0MobileSafari/537.36',
// os: {
// name: 'Android',
// version: '6.0.1'
// },
// browser: {
// name: 'QQBrowser',
// version: '6.0'
// },
// device: {
// model: 'ONEA2001',
// vendor: 'OnePlus',
// type: 'mobile'
// },
// engine: {
// name: 'WebKit',
// version: '537.36'
// }
// }
UAParser.jsUAParser.js的所有正则内容unknownUAParser.js https://github.com/faisalman/ua-parser-jsUAParser.js、本项目的贡献者