JavaScript 领域的 URL 验证有了新的消息!这么多年开发者因为 JavaScript 没有简便的方法来验证 URL 而一直对其发牢*,如今有了一个新方法 — URL.canParse()!
URL.canParse('https://www.pixelstech.net'); // true
URL.canParse('www.pixelstech.net'); // false
URL.canParse() 是一种快速判断字符串是否为有效 URL 的方法。但在不要兴奋得太早,写下这篇文章时 URL.canParse() 还不被所有浏览器支持。不过你可以在下面找到最新的浏览器支持信息。
这个静态方法已经包含在core-js中了。
URL.canParse()依赖于与URL()构造函数评估有效 URL 相同的算法。而且由于这两个方法都实现了相同的解析器,并且URL()今天已经得到了良好的支持,你可以遵循使用构造函数来验证 URL 的一般建议。将new URL()放入辅助函数中,检查是否抛出异常,就大功告成了!
function isUrlValid(string) {
try {
new URL(string);
return true;
} catch (err) {
return false;
}
}
isUrlValid('https://www.pixelstech.net'); // true
isUrlValid('www.pixelstech.net'); // false
或者如果你不喜欢一个 isUrlValid()函数,你也可以类似core-js那样实现URL.canParse()。
不i过最后有个问题,什么是有效的 URL?