我需要建立正则表达式的帮助。有一行Javascript:正则表达式如何?
navigator.userAgent.match(/Firefox\/3./)
现在它只匹配Firefox 3.x.我需要的是一个表达式,它将匹配来自3rd的任何Firefox版本。意思是Firefox 3,4,5等。
欢迎任何建议!
我需要建立正则表达式的帮助。有一行Javascript:正则表达式如何?
navigator.userAgent.match(/Firefox\/3./)
现在它只匹配Firefox 3.x.我需要的是一个表达式,它将匹配来自3rd的任何Firefox版本。意思是Firefox 3,4,5等。
欢迎任何建议!
你不能做正确与正则表达式单独。
var m = navigator.userAgent.match(/Firefox\/(\d+)\./);
if (m && m[1] > 3) {
// .... firefox 3 and above ...
}
注:至于为什么你不能只用正则表达式做正确,考虑火狐/ 10.0
如果您正在使用jQuery我建议你看看:http://api.jquery.com/jQuery.browser/
_您可能会建议,jQuery bods本身不会:“我们建议不要使用此属性;请尝试改为使用功能检测(请参阅jQuery.support)“。不过,这是一个很好的指针。 – paxdiablo 2012-01-06 02:12:28
@paxdiablo是的,特征检测,不推荐,但对浏览器检测它是确定: _“因为$ .browser使用的navigator.userAgent确定平台,它是由用户或虚假陈述容易受到欺骗浏览器本身。最好尽可能避免使用特定于浏览器的代码。** ** $ .support属性可用于检测对特定功能的支持,而不是依赖于$ .browser **“ – denysonique 2012-01-06 04:48:16
这个怎么样,比如:
navigator.userAgent.match(/Firefox\/[3456789]./)
Nice,但与的速度,Mozilla基金会正在增加它的版本数,这会持续大约一个星期半,当V10抵达:-) – paxdiablo 2012-01-06 02:11:24
navigator.userAgent.match(/Firefox\/([3-9]|\d\d)./)
这是更好,但仍然无法与Firefox 100工作:-) – paxdiablo 2012-01-06 02:25:15
navigator.userAgent.match(/Firefox\/([3-9]|\d{2,})./)
if(/Firefox\/([^012]|\d{2,})\./i.test(navigator.userAgent)){
// What you want to do
}
因为你需要比赛,但你可以用正则表达式+一些代码做所有Firefox除了版本0,1和2.
再次,这是很好的个位数的版本,但它会拒绝的Firefox火狐10. 9之后,将工作的第一个是火狐33.即使Mozilla的疯狂加速的版本号,这将需要一段时间:-) – paxdiablo 2012-01-06 03:10:52
它不会拒绝10;加号是什么意思? – 2012-01-06 03:30:01
您可能想要重新考虑该语句,“+”适用于之前的模式,即“[^ 012]”。换句话说,它将允许任何字符中的一个或多个不是0,1或2.因此,10将会失败,如11,12,...,32,40,41,42,1999999等等上。我可能是错的,这不会是第一次,但我不这么认为。 – paxdiablo 2012-01-06 03:31:48
现在我认为用户代理测试是皱眉... – ChaosPandion 2012-01-06 02:08:39