📌  相关文章
📜  检查字符串是否包含 url - Javascript (1)

📅  最后修改于: 2023-12-03 15:40:33.568000             🧑  作者: Mango

检查字符串是否包含 URL - JavaScript

当处理字符串时,有时需要检查字符串中是否包含 URL。在 JavaScript 中,可以使用正则表达式来检查字符串中是否包含 URL。下面是一个简单的 JavaScript 函数,可以检查字符串中是否包含 URL。

function containsURL(str) {
  const regexp = /(http|https)?(:\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
  return regexp.test(str);
}

该函数使用正则表达式来检查字符串中是否包含 URL。如果字符串中包含 URL,则该函数返回 true,否则返回 false。

使用该函数很简单,只需将字符串作为参数传递给函数即可:

const str = 'This is a string containing https://www.example.com URL';
if (containsURL(str)) {
  console.log('String contains URL');
} else {
  console.log('String does not contain URL');
}

上面的代码将输出 "String contains URL",因为字符串包含 URL。

在正则表达式中,使用了多个选项,它们分别表示 URL 的各个部分。下面是对正则表达式的解释:

  • (http|https)?: 匹配 http 或 https,? 表示该部分可以出现零次或一次
  • (:\/\/)?:匹配 ://,? 表示该部分可以出现零次或一次
  • (\w+:{0,1}\w*@)?:匹配用户名和密码,该部分可以包含字母、数字和特殊字符(_、-、:),: 表示 : 可以出现或不出现,@ 表示 @ 可以出现或不出现
  • (\S+):匹配域名
  • (:[0-9]+)?:匹配端口号,? 表示该部分可以出现零次或一次
  • (\/|\/([\w#!:.?+=&%@!\-\/]))?:匹配路径,? 表示该部分可以出现零次或一次

这样,我们就可以使用该函数来检查字符串中是否包含 URL,从而进行相应的操作了。