JavaScript诞生以来,一直没有一种简单的方法验证URL,现在JavaScript新增了一个新方法——URL.canParse。
URL.canParse('https://www.stefanjudis.com'); // true
URL.canParse('www.stefanjudis.com'); // false
URL.canParse()
是一种快速验证字符串是否为有效的URL的方法。然而我们也不要高兴太早,URL.canParse()
方法还存在浏览器兼容问题,在写这篇文章时支持该方法的浏览器版本如下图:
这是详情的浏览器支持信息链接:https://caniuse.com/?search=canParse。
不过core-js已支持URL.canParse()
方法,使用core-js作为垫片可以解决浏览器兼容性问题。
URL.canParse()
与 URL()
构造函数是相同的算法来评估有效的 URL。
由于这两种方法都实现了相同的解析器,并且URL()
目前得到了很好的支持,因此我们可以使用构造函数来验证 URL。将新的URL()
放在辅助函数中,调用它并检查它是否抛出异常!
function isUrlValid(string) {
try {
new URL(string);
return true;
} catch (err) {
return false;
}
}
isUrlValid('https://www.stefanjudis.com'); // true
isUrlValid('www.stefanjudis.com'); // false
如果不喜欢 isUrlValid 函数,也可以像 core-js 一样 polyfill URL.canParse()
。
关注公粽号【程序员凌览】回复"666",拉您进【人类高质量前端交流群~】
往期推荐:linglan01.cn/about