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.]+一样么?求高手解答。

转载请注明:代码学堂>编程开发 > 正则学习 > JS 正则表达式判断各个浏览器代码详解

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

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

提供最优质的资源集合

立即查看 了解详情