我正在开发一个避免IEMobile的小脚本,但检测到MSIE版本,在本例中为IE9。我试图在RegExp中使用负向前瞻来做到这一点,但它不起作用,我想知道我是否正确使用负向前瞻?任何建议表示赞赏。
/^(MSIE 9.0(?!IEMobile))*$/i
IE Mobile的UA字符串:
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)
答案 0 :(得分:2)
首先,您不需要锚定正则表达式(因此在开头和结尾都没有^
$
个符号。)
其次,你的正则表达式在IEMobile
之后找到MSIE 9.0
,在你的实际例子中它们相距甚远。
第三,.
表示任何角色。如果您需要9.0版,则应在正则表达式中使用9\.0
。
正确的正则表达式应为:
/MSIE 9\.0(?!.*IEMobile)/i // matches IE9, but not IEMobile