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 に答える