javascript检测windows操作系统时 /Win(?:dows )?[^do]
{2}s?d+.d+/ 可以检测到"Win 9x 4.90"吗,javascript高级程序设计书中说是可以匹配到
[^do]
只是排除了带有"d","o"的标识符,为什么要这样,不是应该两个非空字符都可以的吗
在看javascript高级程序设计的【客户端检测】一章中碰到的问题,
新手学习,请指教,不胜感谢
阿神2017-04-11 12:34:19
我也刚看到这里,刚刚想通了第一个问题
书上P237说的是第一组匹配到95、98、9x、NT、ME或XP,而不是9x 4.90,按此说法/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/
书中的这行代码是可以匹配Win 9x的,而且下面的检测代码中在检测到RegExp["$1"]=="9x"
之后并没有继续检测["$2"],即后面的 4.90字符串已经可以确定了
第二个问题正在思考中