我有这样的代码:
var versionPattern = new RegExp("^Firefox/[1]{1}[7-9]{1}|[2-9]{1}[0-9]{1}$");
if (navigator.userAgent.indexOf(versionPattern) > 0) {
alert("Firefox Detected");
return true;我想检测Firefox 17和更高版本,但这段代码似乎不能正常工作。我能做些什么来改进RegExp?
发布于 2014-04-17 16:08:58
类似于:
navigator.userAgent.match(/Firefox\/([1]{1}[7-9]{1}|[2-9]{1}[0-9]{1})/);不要在^中使用RegExp,因为Firefox不是字符串的开头。如果您想使用可选的17-19 \ 20 - 99,它应该在(和)之间。
indexOf是在另一个字符串中查找字符串的第一个索引。
发布于 2014-04-17 16:24:59
您可以读取userAgent字符串和匹配版本号-
var bs=navigator.userAgent.match(/Firefox\/(\d+)/);
if(bs && parseInt(bs[1])>17) alert('Firefox '+bs[1]+' detected.')发布于 2014-04-17 17:03:53
您可以使用*REGEX*.test('testString');测试正则表达式,它返回true / false。我可以找到像"Firefox17“"Firefox22”这样的字符串..。通过这个正则表达式:/^(火狐)1{1}7-9{1}\2{1}{1}0-9{1}$,所以您可以尝试:/^(Firefox)[1]{1}[7-9]{1}|[2]{1}[0-9]{1}$.test(navigator.userAgent)
https://stackoverflow.com/questions/23138072
复制相似问题