正则表达式否定iOS设备上的铬



在我的JavaScript WebApp中,我使用以下正则表达式来检测iOS/MAC设备的工作正常。

 var regex = \biP\w+; CPU(?: iP\w+)? OS (?:1[2-9][_\d]+|11_(?:\d\d+|[3-9])(?:_\d+)?) like Mac OS X\b;
 if(navigator.userAgent.match(regex)) {
   // do something
 }

现在,我想在iOS上排除Chrome。因此,我正在尝试下面的正则表达方式,以否定" crios"一词(iOS上的铬),但它不起作用。请让我知道我在这里缺少什么。预先感谢

"\biP\w+; CPU(?: iP\w+)? OS (?:1[2-9][_\d]+|11_(?:\d\d+|[3-9])(?:_\d+)?) like Mac OS X\b(?:(?!CriOS).)*$"

iPhone Safari上的用户
" Mozilla/5.0(iPhone; CPU iPhone OS 10_3喜欢Mac OS X)AppleWebkit/603.1.23(Khtml,像Gecko一样)版本/10.0 Mobile/14E5239E Safari/602.1"

iPhone Chrome上的USEAR代理
" Mozilla/5.0(iPhone; CPU iPhone OS 10_3,例如Mac OS X)AppleWebkit/602.1.50(Khtml,像Gecko一样)CRIOS/56.0.2924.75移动/14E5239E SAFARI/SAFARI/602.1

尝试在代码 (?!.*CriOS)的开头添加否定。

示例:

(?!.*CriOS)\biP\w+; CPU(?: iP\w+)? OS (?:1[2-9][_\d]+|11_(?:\d\d+|[3-9])(?:_\d+)?) like Mac OS X\b

最新更新