在我的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