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

 更新时间:2010年05月13日 01:32:35   作者:   我要评论
学习了3天的正则了。也算几掌握了点基本功。所以把原来一直用别人的判断浏览器方法自己来写了个。
注释都在代码里面了。很详细。
只判断了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(/msie\s([\d\.]+)/);
//msie\s([\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\.]+一样么?求高手解答。

相关文章

  • DW 查找某字符串前的所有字符的正则表达式

    DW 查找某字符串前的所有字符的正则表达式

    我使用DW 这个所见所得的编辑器来写html时,喜欢写上注释,如<!-- header --> 等等的注释,在一次比较大的改动时,需要批量查找替换,为了批量操作,于是我写了一个正则表达式来进行处理
    2012-10-10
  • 常用证件号码的正则表达式大全(收集整理)

    常用证件号码的正则表达式大全(收集整理)

    前段时间做一个项目,需要对各种常用证件进行验证。而港澳通行证,台湾通行证,护照这些证件,在网上并没有找到做正则验证的方法。后来从澳门金沙网上娱乐网站的代码中发现了这些验证规则,特效分享给大家,供大家参考
    2017-03-03
  • 匹配yyyy-mm-dd日期格式的的正则表达式

    匹配yyyy-mm-dd日期格式的的正则表达式

    今天头让我修改个javascript方法,验证输入的日期是否符合要求。恩。我们的要求是yyyy-mm-dd这样的格式,其他的统统不符合要求。原来的方法没用正则表达式,用了一堆判断。
    2011-08-08
  • php 正则表达式的子模式详解

    php 正则表达式的子模式详解

    php 正则表达式的子模式详解,学习php的朋友可以参考下
    2012-06-06
  • js正则表达式常用函数详解

    js正则表达式常用函数详解

    关于正则表达式,是前端学习的重点和难点。本文主要带领大家一起应用一些正则表达式,简单介绍一些正则表达式中常用的方法及对象,例如:test、exec、match、replace、search等等。
    2015-12-12
  • 匹配价格的正则表达式

    匹配价格的正则表达式

    网上找了一些关于价格的正则表达式,但是限定整数范围的貌似都没什么效果,今天把两个表达式拼了一下,拼成一个
    2009-11-11
  • 使用正则表达式找出不包含特定字符串的条目

    使用正则表达式找出不包含特定字符串的条目

    今天在写一个功能的时候,需要替换不包含指定字符串的正则,看到了一篇好文章特整理分享下,方便需要的朋友
    2014-09-09
  • SQL 正则表达式及mybatis中使用正则表达式

    SQL 正则表达式及mybatis中使用正则表达式

    这篇文章主要介绍了SQL 正则表达式及mybatis中使用正则表达式的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • js正则表达式常用函数详解(续)

    js正则表达式常用函数详解(续)

    之前一篇已经带领大家认识了一下正则表达式常用函数最基本的功能及使用方法。本文再带领大家一起应用正则表达式,深入学习正则表达式中常用的方法及对象,例如:test、exec、match、replace、search等等,需要的朋友可以参考下
    2015-12-12
  • 正则表达式检测用户输入的email地址是否合法

    正则表达式检测用户输入的email地址是否合法

    在注册系统开发中,需要检测用户输入的email地址是否合法,都可以使用正则表达式来检测,下面有个小例子,希望对大家有所帮助
    2014-01-01

最新评论