0

我正在研究一个避免 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)
4

1 回答 1

2

首先,您不需要锚定正则表达式(因此^ $在开始和结束时没有符号)。

其次,您的正则表达式IEMobile在 之后查找MSIE 9.0,而在您的实际示例中它们相距较远。

第三,.表示任何字符。如果你想要 9.0 版,你应该9\.0在你的正则表达式中使用。

正确的正则表达式应该是:

/MSIE 9\.0(?!.*IEMobile)/i // matches IE9, but not IEMobile
于 2013-10-18T12:28:00.570 回答