经常碰到需要校验用户输入的url是否有效的场景,我看到许多前端程序员使用正则表达式来校验,实际上,仅使用正则很难完全把url的校验逻辑写全,更不要谈正则的性能问题了。
下面给出一种比较好的校验方案:
function checkHttpUrl(string) {
let givenURL;
try {
givenURL = new URL(string);
} catch (error) {
console.log("error is",error)
return false;
}
return givenURL.protocol === "http:" || givenURL.protocol === "https:";
}
在上面的代码中,如果用户输入的url非法,则会抛出异常,代码的最后一步校验url是否以http或者https开头
高谈阔论