使用Javascript检测Chrome操作系统

狐狸

我想使用Javascript检测Chrome操作系统,navigator.userAgent为此我正在使用它。现在,我正在运行Chrome操作系统,而我的导航器userAgent是

Mozilla/5.0 (X11; CrOS armv7l 6680.78.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.102 Safari/537.36

现在。我使用正则表达式检查userAgent的样式,并在下面编写了代码。

<script>
    if ( navigator.userAgent = /^Mozilla\/\d{1}^.\d{1}^(X11; CrOS i\d{3} \d{1}^.\d{2}\d{3} ^AppleWebKit\/\d{3}^.\d{2} ^(KHTML, like Gecko) Chrome\/ \d{2}^.\d{1}^.\d{3}^.\d{2} ^Safari\/\d{3}^\d{2}/ ){
      console.log(navigator.userAgent);
    } else {
      console.log(navigator.userAgent);
    }
</script>

现在,加载此脚本后,我得到一个错误。

Uncaught SyntaxError: Invalid regular expression: /^Mozilla\/\d{1}^.\d{1}^(X11; CrOS i\d{3} \d{1}^.\d{2}\d{3} ^AppleWebKit\/\d{3}^.\d{2} ^(KHTML, like Gecko) Chrome\/ \d{2}^.\d{1}^.\d{3}^.\d{2} ^Safari\/\d{3}^\d{2}/: Unterminated group

我的代码在哪里出了什么问题?

TJ人群

它抱怨的是您有一个(不匹配的)在正则表达式,()定义捕获组,并有平衡。如果要匹配实际的(),则必须使用反斜杠将其转义。

但是还有其他几个问题。^例如,除了表达式的开头,在任何地方(“输入开始”)都没有意义

但我认为CrOS用户代理中没有其他内容,因此可能很简单:

if (/\bCrOS\b/.test(navigator.userAgent)) {
    // yes, it is (probably, if no one's mucked about with their user agent string)
} else {
    // No, it isn't (probably, if no one's mucked about with their user agent string)
}

这些\b是“单词边界”,因此我们不会在单词中间匹配该字符串。请注意,我将其区分大小写。


旁注:我发现https://regex101.com/#javascript(与我无关)对调试正则表达式非常有用。

旁注2:如果确实需要检测ChromeOS,则上述内容很有用,但如果只是需要检查的功能,如jfriend00所指出,功能检测可能是更好的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome如何检测操作系统

来自分类Dev

操作系统检测Makefile

来自分类Dev

使用javascript检测不同操作系统的窗口的标题栏高度

来自分类Dev

通过JavaScript检测用户设备是否使用了移动操作系统

来自分类Dev

如何使用GIMP方案检测操作系统?

来自分类Dev

我如何让.vimrc检测我正在使用的操作系统?

来自分类Dev

操作系统如何检测硬件?

来自分类Dev

检测操作系统批处理

来自分类Dev

如何使用JavaScript API获取当前的操作系统?

来自分类Dev

Ubuntu-Chrome操作系统外观

来自分类Dev

在Chrome操作系统上运行Xcode

来自分类Dev

VM上的Chrome操作系统?

来自分类Dev

如果Windows操作系统具有无效的许可证,则使用C#检测

来自分类Dev

检测操作系统版本并使用正确的PhantomJS二进制文件

来自分类Dev

如果Windows操作系统具有无效的许可证,则使用C#检测

来自分类Dev

检测操作系统版本并使用正确的PhantomJS二进制文件

来自分类Dev

检测浏览器和操作系统版本

来自分类Dev

如何在Go中检测操作系统版本?

来自分类Dev

如何从Python脚本检测Android操作系统?

来自分类Dev

React Js如何检测当前操作系统

来自分类Dev

React Js如何检测当前操作系统

来自分类Dev

操作系统如何检测内存访问冲突

来自分类Dev

是否可以在c ++中检测操作系统?

来自分类Dev

检测Makefile是否包含其Ubuntu Linux操作系统

来自分类Dev

深度操作系统:无法检测到无线

来自分类Dev

检测浏览器和操作系统版本

来自分类Dev

efi 未检测到任何操作系统

来自分类Dev

32 位操作系统上的 RAM 检测问题

来自分类Dev

带有操作系统检测的自动下载

Related 相关文章

热门标签

归档