我正在编写一个小脚本,该脚本可以避免 IEMobile 但检测 MSIE 版本,在本例中为 IE9。我试图在正则表达式中使用负前瞻来执行此操作,但它不起作用,我想知道我是否正确使用了负前瞻?任何建议表示赞赏。
/^(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)
最佳答案
首先,您不需要锚定正则表达式(因此在开始和结束处没有 ^
$
符号)。
其次,您的正则表达式会在 MSIE 9.0
之后查找 IEMobile
,而在您的实际示例中,它们相距较远。
第三,.
表示任何字符。如果您想要版本 9.0,则应在正则表达式中使用 9\.0
。
正确的正则表达式应该是:
/MSIE 9\.0(?!.*IEMobile)/i // matches IE9, but not IEMobile
关于javascript - 正则表达式负向前瞻以排除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449483/