JS 用 URL 构造器只验证 HTTP URL

19 min read

JavaScript中有URL构造函数(URL constructor),可以用来验证HTTP URL。

示例代码如下:

function validateHttpUrl(url) {
  try {
    const httpUrl = new URL(url);
    if(httpUrl.protocol !== 'http:' && httpUrl.protocol !== 'https:'){
      throw new Error('Invalid HTTP URL');
    }
    return true;
  } catch (error) {
    console.error(error);
    return false;
  }
}

使用方法:

console.log(validateHttpUrl('http://example.com'));  // true
console.log(validateHttpUrl('https://example.com')); // true
console.log(validateHttpUrl('ftp://example.com'));   // false
console.log(validateHttpUrl('example.com'));         // false

以上代码中,首先使用new URL(url)构造一个URL对象,然后判断协议(protocol)是否为http:https:,如果不是,则抛出错误。如果没有抛出错误,则返回true表示验证通过,否则返回false表示验证失败。