在 JavaScript 中验证 URL 的新方法(2023 年版)

在 JavaScript 领域,URL 验证方面有了新消息!多年来,人们一直在咒骂 JavaScript 没有一种简便的方法来验证 URL,现在有了一种新方法--URL.canParse()

js 复制代码
URL.canParse("https://www.stefanjudis.com"); // true
URL.canParse("www.stefanjudis.com"); // false

哈利路亚!URL.canParse() 是一种快速判断字符串是否为有效 URL 的方法。但在我们兴奋之前,在撰写本篇文章时,URL.canParse() 并不支持跨浏览器。不过你可以在下面找到最新的浏览器支持信息。👇

不过,静态方法已经包含在 core-js 中。填充漂亮的 URL 验证一行代码很困难吗?事实证明,不是!

URL.canParse() 依靠与 URL() 构造函数相同的算法来评估有效的 URL。

由于这两种方法都实现了相同的解析器,而且 URL() 目前也得到了很好的支持,因此可以按照一般建议使用构造函数来验证 URL。将 new URL() 放在辅助函数中,检查它是否会抛出异常并将其调用!

js 复制代码
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-jspolyfillURL.canParse()

唯一剩下的问题是"什么是有效的 URL?"但我将把这个问题留到下次讨论!因为这是个棘手的问题。


原文:www.stefanjudis.com/blog/valida...

相关推荐
lcc1871 分钟前
Vue3 新的组件
前端·vue.js
AskHarries3 分钟前
技术人最深的三大痛点:看见的人不多,说出口的人更少
前端·后端·程序员
星尘库4 分钟前
怎么实现js混淆加密 每隔一段时间 会失效 需要重新加密使用
java·服务器·前端
幸运小圣11 分钟前
递归(Recursion)快速上手指南【JS例子】
开发语言·javascript·ecmascript
m***98212 分钟前
Redis6.2.6下载和安装
android·前端·后端
LV技术派14 分钟前
这一年,收获很多,办了婚礼,还出了一门前端AI课
前端·程序员·ai编程
我叫张小白。21 分钟前
Vue3 基本生命周期:组件的一生之旅
前端·javascript·vue.js·前端框架·vue3
GISer_Jing25 分钟前
SSE Conf大会分享——UTOO WASM:AI时代的浏览器原生极速研发套件
前端·人工智能·架构·wasm
Q***l68728 分钟前
前端在移动端中的响应式设计
前端
QH_ShareHub29 分钟前
R 包中的生命周期触发函数全解析
前端·javascript·数据库