Javascript RegExp首次出现
我正在使用JavaScript上下文检测器 它解析UA中的一些常见数据,如操作系统版本和浏览器版本 它几乎所有的东西都使用RegExp 与检测Mac OS X版本的脚本类似:Javascript RegExp首次出现,javascript,regex,Javascript,Regex,我正在使用JavaScript上下文检测器 它解析UA中的一些常见数据,如操作系统版本和浏览器版本 它几乎所有的东西都使用RegExp 与检测Mac OS X版本的脚本类似:/(英特尔PPC)Mac OS X(+)[\;]/ 它将数据保存到我将调用的对象中 $.Mac应该是10_6_7,但它是10_6_7)AppleWebKit/534.24(KHTML,像Gecko 完整的ua是Mozilla/5.0(Macintosh;英特尔Mac OS X 10_6_7)AppleWebKit/534.2
/(英特尔PPC)Mac OS X(+)[\;]/
它将数据保存到我将调用的对象中
$.Mac
应该是10_6_7
,但它是10_6_7)AppleWebKit/534.24(KHTML,像Gecko
完整的ua是Mozilla/5.0(Macintosh;英特尔Mac OS X 10_6_7)AppleWebKit/534.24(KHTML,像Gecko)Chrome/11.0.696.25 Safari/534.24
它总是使用最后找到的;或者),当我想让它找到的时候;或)紧跟在版本号之后。如何做到这一点?使
+
不冻结
/(Intel|PPC) Mac OS X (.+?)[\);]/
之前:
var str = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.25 Safari/534.24',
re = /(Intel|PPC) Mac OS X (.+)[\);]/;
str.match(re); // ["Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko)", "Intel", "10_6_7) AppleWebKit/534.24 (KHTML, like Gecko"]
之后:
var re = /(Intel|PPC) Mac OS X (.+?)[\);]/;
str.match(re): // ["Intel Mac OS X 10_6_7)", "Intel", "10_6_7"]
将
+
设置为非冻结状态
/(Intel|PPC) Mac OS X (.+?)[\);]/
之前:
var str = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.25 Safari/534.24',
re = /(Intel|PPC) Mac OS X (.+)[\);]/;
str.match(re); // ["Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko)", "Intel", "10_6_7) AppleWebKit/534.24 (KHTML, like Gecko"]
之后:
var re = /(Intel|PPC) Mac OS X (.+?)[\);]/;
str.match(re): // ["Intel Mac OS X 10_6_7)", "Intel", "10_6_7"]
或者,使您的
+
更加具体:
/(Intel|PPC) OS X ([0-9_]+)/
只要你能指望你的版本号只包含数字和下划线,你就应该做到这一点
希望这有帮助 或者,使您的
+
更加具体:
/(Intel|PPC) OS X ([0-9_]+)/
只要你能指望你的版本号只包含数字和下划线,你就应该做到这一点
希望这有帮助 您正在使用jQuery吗?它已经有了这个。为什么每个人都要问所有的事情,这是行不通的。它没有给出Chrome/Safari的真实版本号,也没有操作系统数据。我之所以提到它,是因为。啊。不过我更喜欢你的答案。:)您正在使用jQuery吗?它已经有了这个。为什么每个人都要问所有的事情,这是行不通的。它没有给出Chrome/Safari的真实版本号,也没有操作系统数据。我之所以提到它,是因为。啊。不过我更喜欢你的答案。:)我更喜欢使用
reg.exec(str)
。我更喜欢使用reg.exec(str)
。