javascript检测windows操作系统时 /Win(?:dows )?[^do]{2}s?d+.d+/ 可以检测到"Win 9x 4.90"吗,javascript高级程序设计书中说是可以匹配到
[^do]只是排除了带有"d","o"的标识符,为什么要这样,不是应该两个非空字符都可以的吗
在看javascript高级程序设计的【客户端检测】一章中碰到的问题,
新手学习,请指教,不胜感谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我正在看这本书,刚看到这块儿,应该是写错了,写成\S{2}或[^\s]{2}应该就对了。
应该是检测不到的吧。。
字符串 Win 后面有个空格。。正则那里没有这个空格。。。我觉得在
[^do]前面加上个空格应该就能通过了这个试了一下可以通过
我也刚看到这里,刚刚想通了第一个问题
书上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字符串已经可以确定了第二个问题正在思考中