如何检查window.location.pathname是否以/search结尾以跟踪搜索页访问?
解决方案
首先明确:不建议用window.location.hash实现,因为hash是URL中#之后的独立片段,和你要检测的路径部分(pathname)无关,没法用来判断pathname是否以/search结尾。
推荐直接对window.location.pathname做处理,适配多地区场景的方法有两种:
方法一:使用字符串
endsWith方法
直接判断路径是否以/search结尾,自动忽略前面的地区前缀:function isMatch() { return window.location.pathname.endsWith('/search'); }这个方法简单直接,现代浏览器均支持,完美适配
/en_US/search、/zh_CN/search这类带地区代码的路径。方法二:使用正则表达式
如果需要兼容更复杂的路径格式,可通过正则匹配末尾的/search:function isMatch() { return /\/search$/.test(window.location.pathname); }正则
\/search$会精准匹配路径末尾的/search,不受前面任意内容影响。
这两种方法都无需针对不同地区修改代码,只要路径最终以/search结尾就能触发事件,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Schneider G
相关产品推荐
相关产品推荐

