识别当前是浏览器还是微信浏览器的问题

/mozilla|chrome|safari|firefox/.test(navigator.userAgent)

/mozilla|chrome|safari|firefox/.test(navigator.userAgent.toLowerCase()

这两个的值是相反的,

console.log(/mozilla|chrome|safari|firefox/.test(navigator.userAgent),'/mozilla|chrome|safari|firefox/.test(navigator.userAgent)')

console.log(/mozilla|chrome|safari|firefox/.test(navigator.userAgent.toLowerCase()),'/mozilla|chrome|safari|firefox/.test(navigator.userAgent.toLowerCase())')

这两个一个是true一个是false,

原因:

这两个表达式之所以产生不同的结果,是因为它们在匹配用户代理字符串时使用了不同的方法。

第一个表达式/mozilla|chrome|safari|firefox/.test(navigator.userAgent)是在原始的用户代理字符串中进行匹配。这意味着它只会检查用户代理字符串中是否包含"mozilla"、"chrome"、"safari"或"firefox"这些关键词。如果用户代理字符串中包含任何一个关键词,表达式将返回true,否则返回false

第二个表达式/mozilla|chrome|safari|firefox/.test(navigator.userAgent.toLowerCase())在匹配之前先将用户代理字符串转换为小写。这是因为用户代理字符串中的关键词可能以不同的大小写形式出现。通过将用户代理字符串转换为小写,我们可以确保匹配不受大小写的影响。

因此,如果用户代理字符串中包含"Mozilla"、"Chrome"、"Safari"或"Firefox"这些关键词,并且它们的大小写与表达式中的关键词匹配,那么第二个表达式将返回true。否则,它将返回false

请注意,用户代理字符串可能会因浏览器版本、操作系统或用户自定义而有所不同。因此,这些表达式只能作为一种简单的检测方法,并不能保证100%准确性

相关推荐
root_1028 分钟前
kylin-v10-sp3-x86系统安装vmware-17
大数据·chrome·kylin
东风破13713 小时前
达梦数据库实战:备份恢复与数据迁移全攻略(实例初始化、服务注册、路径迁移)
数据库·chrome
A_humble_scholar15 小时前
Linux(九) 进程管理完全指南:从入门到实战
linux·运维·chrome
cypking20 小时前
从零搭建 Claude Code + Chrome MCP 浏览器自动化:前端 E2E 端到端测试完整教程(包含增量测试)
前端·chrome·自动化
PixelBai1 天前
JSON过滤使用教程:从入门到精通
javascript·chrome·json
Chelsea05221 天前
PC浏览器在线调试 Android 浏览器教程-chrome://inspect/#devices
android·前端·chrome
喜欢踢足球的老罗1 天前
破解 Chrome 扩展的「两世界难题」:MV3 下的 ISOLATED 与 MAIN World 桥接之道
前端·chrome
怕浪猫2 天前
第一章、Chrome DevTools Protocol (CDP) 详解
前端·javascript·chrome
江畔柳前堤2 天前
github实战指南07-CLI 与高级技巧
前端·人工智能·chrome·深度学习·github·caffe·issue
程序猿阿伟2 天前
《Chrome非必要服务的精细化关闭指南》
前端·chrome·php