通过弹出不同的环境的ua发现
在Android上
QQ内置环境的ua中有关键字 MQQBrowser
, 并且后面紧跟一个QQ
字符,QQ浏览器则没有,
因此在Android上区分,需要用正则判断ua中包含MQQBrowser
并且之后包含QQ
,则是QQ内置浏览器,
ua中包含MQQBrowser但是不包含QQ
则是QQ浏览器
在ios上
QQ内置浏览器的ua包含一个空格加QQ
,但是不包含MQQBrowser
QQ浏览器ua包含MQQBrowser
但是不包含单独的QQ
问题中红色部分均为ua字符串中的某一段字符串,现在我的难题是,我不会写正则表达式,我希望的写法如下
isIosQQ = isIos && /xxxxx/.test(ua);
isAndroidQQ = isAndroid && /xxxxx/.test(ua);
求各位帮助,万分感谢!
var androidExp = new RegExp('MQQBrowserQQ');//安卓正则
var iosExp = new RegExp('MQQBrowser QQ');//ios正则
isIosQQ = isIos && iosExp.test(ua);
isAndroidQQ = isAndroid && androidExp.test(ua);
//等同于
/MQQBrowserQQ/.test(ua)
也可以用indexOf()来判断
if(isIos && ua.indexOf('MQQBrowser QQ') > -1){
//是QQ内置浏览器
}