2

1 つの正規表現を使用する Chrome ブラウザーではなく、Safari ブラウザーと一致させる必要があります。私は通常、正規表現に問題はありませんが、ここでは否定的な先読みが私を困惑させています。

/(?!chrome)(safari)/i.test("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5");

これが返される理由がわかりませんtrue

4

1 に答える 1

5

これでできます

^(?!.*chrome).*(safari)

ところで、JavaScript は後読みをサポートしていませんが、先読みには問題はありません。

あなたが言っていること

(?!chrome)(safari)

「safari」の直前(幅がゼロなので、sの前のカーソルから始まる)には、意味をなさない文字列「chrome」があってはなりません。

于 2012-06-19T20:53:18.113 に答える