关于正则表达式:在javascript中检测Safari浏览器

Detect Safari browser in javascript

我找到了这个代码片段,它检查是否使用了Safari浏览器:

1
var isSafari = /constructor/i.test(window.HTMLElement);

但我真的不知道这是怎么回事。有人能给我解释一下它是怎么工作的吗?我知道constructor返回创建regexp对象原型的函数,i执行不区分大小写的匹配,但HTMLElement到底是什么?


在safari中,window.HTMLElement返回一个名为HTMLElementConstructor的函数。

让我们这样做:

1
/constructor/i.test(function HTMLElementConstructor() {}) // return true

但对于其他浏览器(FF、Chrome),它返回HTMLElement

1
/constructor/i.test(function HTMLElement() {}) // return false

但感谢你的观察!我希望我们可以使用它以及这里提到的方法:检测Safari浏览器