如何用jQuery识别仅含查询参数无子目录的根域名URL
匹配根域名URL(不含子目录)的简便方法
想要判断一个URL是否是根域名(不含子目录,可带查询字符串),不用手动拆分URL,有两种更简便的方法:
方法一:正则表达式匹配
直接用正则精准匹配符合要求的URL,示例正则如下:
^https?://[^/]+(/(\?.*)?|$)
正则说明:
^https?://:匹配HTTP或HTTPS协议开头的URL[^/]+:匹配完整的域名部分(直到第一个斜杠为止)(/(\?.*)?|$):匹配两种合法情况:要么是根路径/后面可选带查询字符串(比如/?utm=blah),要么域名后直接结束(比如domain.com或domain.com?utm=blah)
匹配验证:
- 符合:
domain.com、domain.com?utm=blah、domain.com/?utm=blah - 不符合:
domain.com/directory
方法二:利用URL API解析(推荐)
浏览器和Node.js都支持原生URL对象,能直接解析URL的各个部分,只需判断pathname是否为空或等于/即可:
// 示例URL const targetUrl = new URL('https://domain.com/?utm=blah'); // 判断逻辑 if (targetUrl.pathname === '' || targetUrl.pathname === '/') { // 这里执行你的函数 }
这种方法不用自己处理各种边缘情况(比如域名后有没有斜杠、协议差异等),逻辑清晰且不易出错。
内容的提问来源于stack exchange,提问作者Cory Watilo
相关产品推荐
相关产品推荐

