Amy 原创整理|资料核验:2026-10-31
MDN 说明,URL.canParse() 返回布尔值,用来判断一个绝对URL,或带基础地址的相对URL,能否被解析。它与 URL 构造函数能否成功对应,可以避免仅为验证解析而写一段 try/catch。
教学示例:URL.canParse('/guide') 为 false,因为相对路径缺少基础地址;URL.canParse('/guide', 'https://example.com') 为 true。这里使用的是示例域名,不会请求或访问该网站。
Amy的实现建议:先检测 'canParse' in URL,再处理需要兼容的旧环境。更重要的是,把“格式可解析”和“允许使用这个链接”作为两项检查:能解析并不证明网页存在、内容可信或符合产品允许的协议和域名。
例如用户提交跳转地址时,应用仍需按自身规则检查解析后的 protocol 与 hostname。不要把一个 true 直接当成安全审核通过,也不要把这种语法验证当成网络连通性测试。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/API/URL/canParse_static