Javascript怎么识别Windows操作系统各个版本


今天小编给大家分享一下Javascript怎么识别Windows操作系统各个版本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Windows平台下,还可以从用户代理字符串中进一步取得具体的操作系统信息。在Windows XP之前,Windows有两种版本,分别针对家庭用户和商业用户。针对家庭用户的版本分别是Windows 95、98和Windows ME。而针对商业用户的版本则一直叫做Window NT,最后由于市场原因改名为Windows2000。这两个产品线后来又合并成一个由Windows NT发展而来的公共的代码基,代表产品免费云主机域名就是Windows XP。随后,微软在Windows XP基础上又构建了Windows Vista。只有了解这些信息,才能搞清楚用户代理字符串中Windows操作系统的具体版本。下表列出了不同浏览器在表示不同的Windows操作系统时给出的不同字符串。windows版本 IE4+ Gecko Opera
95 ” Windows 95″ “Win95” “Windows 95” “Windows 95 n/a98 “Windows 98” “Win98″ Windows 98” “Windows 98” n/aNT 4.0 “Windows NT” “WinNT4.O” “Windows NT 4.O” “Windows NT 4.0” n/a2000 “Windows NT 5.0” “Windows NT 5.O” “Windows 2000” “Windows NT 5.O” n/aIE “Win 9x 4.90” “Win 9x 4.90” “Windows ME” “Win 9x 4.90” n/aXP “Windows NT 5.1” “Windows NT 5.1” “Windows XP” “Windows NT 5.1” “Windows NT 5.1″Vista “Windows NT 6.0” “Windows NT 6.0” n/a “Windows NT 6.0” “Windows NT 6.0″由于用户代理字符串中的Windows操作系统版本表示方法各异,因此检测代码并不十分直观。好在,从Windows 2000开始,表示操作系统的字符串大部分都还相同,只有版本号有变化。为了检测不同的Windows操作系统,必须要使用正则表达式。由于使用Opera 7之前版本的用户已经不多了,因此我们可以忽略这部分浏览器。第一步就是匹配Windows 95和Windows 98这两个字符串。对这两个字符串,只有Gecko与其他浏览器不同,即没有”dows”,而且”Win”与版本号之间没有空格。要匹配这个模式,可以使用下面这个简单的正则表达式:/Win(?:dows)?([^do](2))/这个正则表达式中的捕获组会返回操作系统的版本。由于版本可能是任何两个字符编码(例如95、98,9x、NT、ME及XP),因此要使用两个非空格字符。Gecko在表示Windows NT时会在末尾添加”4.O”,与其查找实际的字符串,不如像下面这样查找小数值更合适:/Win(?:dows)?([^do](2))(d+.d+)?/这样,正则表达式中就包含了第二个捕获组,用于取得NT的版本号。由于该版本号对于Windows95和Windows 98而言是不存在的,所以必须设置为可选。这个模式与Opera表示Windows NT的字符串之间唯一的区别,就是”NT”与“4.o”之间的空格,这在模式中很容易添加:/Win(?:dows)?([^do](2))87(d+.d+)?/经过一番修改之后,这个正则表达式也可以成功地匹配Windows ME、Windows XP和WindowsVista的字符串了。具体来说,第一个捕获组将会匹配95、98、9x、NT、ME或XP。第二个捕获组则只针对Windows ME及所有Windows NT的变体。这个信息可以作为具体的操作系统信息保存在system.win属性中,如下所示:if (system.win){if (/Win(?:dows)?([^do]{2})s?(d+.d+)?/.test (ua)){if (RegExp[“$1″]==”NT”){switch (RegExp[“$2”]){case “5.0”:system.win=”2000″;break;case “5.1”:system.win= “XP”;break:case “6.0”:system.win=”Vista”;break:default:system.win=”NT”;break;} else if (RegExp[“$1″]==“9x”){system.win=”ME”;} else{system.win=RegExp[“$1″];))}如果system.win的值为true,那么就使用这个正则表达式从用户代理字符串中提取具体的信息。鉴于Windows将来的某个版本也许不能使用这个方法来检测,所以第一步应该先检测用户代理字符串是否与这个模式匹配。在模式匹配的情况下,第一个捕获组中可能会包含”95″、”98″、”9x”或”NT”。如果这个值是”NT”,可以将system.win设置为相应操作系统的字符串;如果是n9x”,那么system.win就要设置成”ME”;如果是其他值,则将所捕获的值直接赋给sys七em.win。有了这些检测平台的代码后,我们就可以编写如下代码:if(client.system.win){if(client.system.win==”XP”) {//说明是XP} else if (client.system .win==”Vista”){//说明是Vista}}由于非空字符串会转换为布尔值true,因此可以将client.system.win作为布尔值用在if语句中。而在需要更多有关操作系统的信息时,则可以使用其中保存的字符串值。以上就是“Javascript怎么识别Windows操作系统各个版本”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: 怎么用Golang和Docker部署应用程序

本文小编为大家详细介绍“怎么用Golang和Docker部署应用程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Golang和Docker部署应用程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 第一步:编写 Golan…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/20 16:25
Next 07/20 16:25

相关推荐