首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用JavaScript RegExp检测特定浏览器

用JavaScript RegExp检测特定浏览器
EN

Stack Overflow用户
提问于 2014-04-17 16:02:53
回答 4查看 2.3K关注 0票数 0

我有这样的代码:

代码语言:javascript
运行
复制
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?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-17 16:08:58

类似于:

代码语言:javascript
运行
复制
navigator.userAgent.match(/Firefox\/([1]{1}[7-9]{1}|[2-9]{1}[0-9]{1})/);

不要在^中使用RegExp,因为Firefox不是字符串的开头。如果您想使用可选的17-19 \ 20 - 99,它应该在()之间。

indexOf是在另一个字符串中查找字符串的第一个索引。

票数 1
EN

Stack Overflow用户

发布于 2014-04-17 16:24:59

您可以读取userAgent字符串和匹配版本号-

代码语言:javascript
运行
复制
var bs=navigator.userAgent.match(/Firefox\/(\d+)/);
if(bs && parseInt(bs[1])>17) alert('Firefox '+bs[1]+' detected.')
票数 1
EN

Stack Overflow用户

发布于 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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23138072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档