适用于Chrome和Safari的正则表达式负面预测

dtb*_*rne 2 javascript regex regex-lookarounds

我需要匹配Safari浏览器,而不是使用一个Regex的Chrome浏览器.我通常没有正则表达式的问题,但负面的前瞻让我难过.

/(?!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");
Run Code Online (Sandbox Code Playgroud)

无法弄清楚为什么会这样true.

buc*_*ley 5

这样做

^(?!.*chrome).*(safari)
Run Code Online (Sandbox Code Playgroud)

BTW JavaScript不支持lookbehind,但我发现lookahead没有问题.

你说的是什么

(?!chrome)(safari)
Run Code Online (Sandbox Code Playgroud)

是在"safari"之前(零宽度,因此从s之前的光标开始),没有字符串"chrome"没有意义.