使用 JavaScript 从 URL 中删除 http 或 https

要从 url 中删除 http:// 或 https://,请使用以下正则表达式调用 replace() 方法 – /^https?:\/\// 和一个空字符串作为参数。 replace 方法将返回一个新字符串,其中 http:// 部分已被删除。

function removeHttp(url) {
  return url.replace(/^https?:\/\//, '');
}

// ?️ "example.com"
console.log(removeHttp('https://example.com'));

// ?️ "example.com"
console.log(removeHttp('http://example.com'));

我们创建了一个可重用的函数,用于删除 url 的 http:// 或 https:// 部分。

我们将以下 2 个参数传递给 String.replace 方法:

  1. 我们要在字符串中匹配的正则表达式
  2. 每场比赛的替换

插入符号 ^ 匹配输入的开头,换句话说,字符串必须以 http(s) 开头。

问号 ? 与前面的项目匹配 0 次或 1 次。在示例中,问号使 s 字符可选。

最后,我们必须使用反斜杠转义正斜杠。

如果您在阅读正则表达式时需要帮助,请查看来自 MDN 的正则表达式速查表。

我们传递给 replace() 方法的第二个参数是正则表达式匹配的替换。出于我们的目的 – 一个空字符串,因为我们想删除 http:// 部分。

如果想避免使用正则表达式,请改用 String.startsWith方法。


使用 startsWith 从 URL 中删除 ‘http://’ 或 ‘https://’

要从 url 中删除 http:// 或 https://,请检查 url 是否以 https:// 或 http:// 开头,如果是,请使用 slice() 方法获取 url 之后的部分http协议。 slice() 方法返回一个代表原始字符串一部分的新字符串。

function removeHttp(url) {
  if (url.startsWith('https://')) {
    const https = 'https://';
    return url.slice(https.length);
  }

  if (url.startsWith('http://')) {
    const http = 'http://';
    return url.slice(http.length);
  }

  return url;
}

// ?️ "example.com/books"
console.log(removeHttp('https://example.com/books'));

// ?️ "example.com"
console.log(removeHttp('http://example.com'));

我们首先检查 url 是否以 https:// 开头,如果是我们使用 String.slice() 方法获取协议之后的 url 片段。

我们传递给 slice() 方法的唯一参数是起始索引——要包含在字符串中的第一个字符的索引。

// ?️ "example.com"
console.log('http://example.com'.slice(7));

我们使用 http:// 或 https:// 字符串的长度来确定起始索引,这样我们就可以避免对幻数进行硬编码。

如果 url 不是以 http:// 或 https:// 开头,我们将按原样返回字符串。