如果他们的浏览器名称/版本不在列表中,则需要将客户重定向到另一个网页。
我想我的问题的答案就在这里。如何检测浏览器的版本?但是我不明白。
我想这就是我要寻找的
ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)
寻找匹配项,navigator.userAgent
但我不理解正则表达式。
作为第三种选择,我正在尝试阅读此书,但我也不理解。
if(M[1]=== 'Chrome'){
tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
}
任何人都可以简单地解释这些吗?
正则表达式是一种搜索文本的简单方法。缺点是它们非常陈旧。如果您反复阅读并练习http://www.regular-expressions.info/上的教程,则可以在几周内学习正则表达式。
这里的每个人都试图编写一个正则表达式来从user agent
字符串中查找浏览器的文本,这主要是因为用户代理字符串已经很难阅读。您可以在http://www.useragentstring.com/上了解它。
如您所见,字符串的文本全部是关于解释使用哪种浏览器访问您的网站。因此,大多数正则表达式只是试图查找浏览器名称。
在您的第二个示例中,这特别明显:
opera|chrome|safari|firefox|msie|trident
在正则表达式中,管道用于表示or
上述内容,opera or chrome or safari or firefox or msie or trident
并且由于您可能知道这msie
意味着Microsoft Internet Explorer,因此您可以看到它仅仅是浏览器列表。
您可以轻松地在字符串中搜索文本。在javascript中,这样做indexOf
是有风险的,因为如果例如if语句无法识别用户的浏览器名称,则通常会列出用户代理字符串后备浏览器。
如果我正在寻找Chrome浏览器,则可能会做类似的事情。
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
// do stuff with chrome
}
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句