栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > 正则表达

JS 正则表达式判断各个浏览器代码详解

正则表达 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JS 正则表达式判断各个浏览器代码详解

注释都在代码里面了。很详细。
只判断了IE 火狐 谷歌 因为我没装其他浏览器了,所以呵呵。当然如果要判断其他浏览器。基本代码都是一样的了。
复制代码 代码如下:
(function(){
window.sys={};
var ua=navigator.userAgent.toLowerCase();
//首先我们来看一下3个浏览器都返回了什么看下面。
//ie ua=mozilla/4.0 (compatible; msie 8.0; windows nt 5.2; trident/4.0; qqpinyin 730; .net clr 1.1.4322)
//firefox ua=mozilla/5.0 (windows; u; windows nt 5.2; zh-cn; rv:1.9.2) gecko/20100115 firefox/3.6
//chrome ua=mozilla/5.0 (windows; u; windows nt 5.2; en-us) applewebkit/532.5 (khtml, like gecko) chrome/4.0.249.0 safari/532.5

//可以看出上面的浏览器 IE msie 8.0 firefox firefox/3.6 chrome chrome/4.0.249
//我们只要用正则找出字符串里面是能匹配这几个关键地方就可以找出是哪个浏览器了。
//看下面正则 firefox 的正则表达式 /firefox/([d.]+)/
//firefox/ 匹配了一个 firefox/ 这样一个字符
//([d.]+) ()表示需要捕获匹配的字符。后面可以用[1]的方式来获取版本号就是他的功劳了。
//[]表示把d.括起来当成一个整体 没别的意思
//d 匹配一个数字 . 匹配一个 . 加在一起就可以匹配 8. 这样的东西了
//[]+ []外面还有个+ 他会把[] 里面原来匹配的东西重复 于是变成了这样 8.8.8.8. 当然这样也可以 48.1.563
sys.firefox=ua.match(/firefox/([d.]+)/);
sys.ie=ua.match(/msies([d.]+)/);
//msies([d.]+)
// ie的就基本跟火狐一样了 没什么太大的区别
// msie 8.0 s 就是匹配 msie和8.0 中间的一个空格
sys.chrome=ua.match(/chrome/([d.]+)/);
//chrome/([d.]+)
//跟火狐的一样
})();

//使用
if(sys.firefox){
alert(true)
}else{
alert(false)
}
if(sys.ie[1]=="8.0"){
alert(true)
}else{
alert(false)
}

alert(sys.firefox);
alert(sys.ie);
alert(sys.chrome);
//只有当前浏览器的sys才能使用[1]返回版本号
alert(sys.firefox[1]);
//alert(sys.ie[1]);
//alert(sys.chrome[1]);

我遇到一个问题。我看到高手有这样写的

firefox/([d.]+)//高手的
firefox/([d.]+)//我的
//我很疑惑 到底这两个有什么区别。我用很多STR 测试了。没看出什么区别//难道[d.]+ 跟 [d.]+一样么?求高手解答。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/60661.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号