以下是jquery的正则表达式:
Javascript代码
1.// Useragent RegExp
2.rwebkit = /(webkit)[ \/]([\w.]+)/,
3.ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
4.rmsie = /(msie) ([\w.]+)/,
5.rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
以下针对自己的想法做了新的改进,支持区分ie、firefox、opera、chrome、safari,
另外版本号的取值也与jquery不同,jquery取得版本号可能是内核的版本号吧,以后再考虑改进改进:
Javascript代码
1.// browser check-----start
2.var userAgent = navigator.userAgent, // userAgent
3.rMsie = /.*(msie) ([\w.]+).*/, // ie
4.rFirefox = /.*(firefox)\/([\w.]+).*/, // firefox
5.rOpera = /(opera).+version\/([\w.]+)/, // opera
6.rChrome = /.*(chrome)\/([\w.]+).*/, // chrome
7.rSafari = /.*version\/([\w.]+).*(safari).*/;// safari
8.jMeteor.browser = {};
9.var ua = userAgent.toLowerCase();
10.function uaMatch(ua) {
11. var match = rMsie.exec(ua);
12. if (match != null) {
13. return { browser : match[1] || "", version : match[2] || "0" };
14. }
15. var match = rFirefox.exec(ua);
16. if (match != null) {
17. return { browser : match[1] || "", version : match[2] || "0" };
18. }
19. var match = rOpera.exec(ua);
20. if (match != null) {
21. return { browser : match[1] || "", version : match[2] || "0" };
22. }
23. var match = rChrome.exec(ua);
24. if (match != null) {
25. return { browser : match[1] || "", version : match[2] || "0" };
26. }
27. var match = rSafari.exec(ua);
28. if (match != null) {
29. return { browser : match[2] || "", version : match[1] || "0" };
30. }
31. if (match != null) {
32. return { browser : "", version : "0" };
33. }
34.}
35.var browserMatch = uaMatch(userAgent.toLowerCase());
36.if (browserMatch.browser) {
37. jMeteor.browser[browserMatch.browser] = true;
38. jMeteor.browserName = browserMatch.browser;
39. jMeteor.browser.version = browserMatch.version;
40. jMeteor.browser.language = (navigator.language ? navigator.language
41. : navigator.userLanguage || "");
42.}
43.// browser check-----end
使用方法:
Javascript代码
1.jMeteor.browser.msie //判断是否为ie,返回true则代表是 2.jMeteor.browserName //浏览器名称 3.jMeteor.browser.version //浏览器版本 4.jMeteor.browser.language //语言