📜  正则表达式来识别 url - Javascript (1)

📅  最后修改于: 2023-12-03 14:55:54.292000             🧑  作者: Mango

使用正则表达式来识别 URL - JavaScript

正则表达式是一种用于匹配字符串模式的工具,它在 JavaScript 中非常常见,因为它可以帮助您识别各种字符串模式,包括 URL。

为了识别 URL,您可以使用正则表达式来匹配 URL 的模式。下面是一个简单的例子:

const urlPattern = /^(https?|ftp):\/\/(-\.)?([^\s/?\.#-]+\.?)+(\/[^\s]*)?$/i;
const url = "https://www.example.com";

if (urlPattern.test(url)) {
  console.log("Valid URL");
} else {
  console.log("Invalid URL");
}

在这个例子中,我们定义了一个正则表达式模式,该模式识别了 URL 的模式。我们然后将该模式应用于字符串变量 url 并测试该模式是否匹配。如果模式匹配,我们将打印 "Valid URL",否则我们将打印 "Invalid URL"。

该正则表达式模式由一些字符组成,这些字符帮助识别 URL 的模式:

  • ^ 匹配字符串开头。
  • (https?|ftp) 识别 httphttpsftp
  • :\/\/ 识别 URL 分隔符 ://
  • (-\.)? 识别一个可选的连字符 - 或点号 .
  • ([^\s/?\.#-]+\.?)+ 识别 URL 的域名。
  • (\/[^\s]*)? 识别 URL 的路径名。
  • $ 匹配字符串结尾。

通过使用这些字符,我们可以匹配 URL 的不同部分并测试其有效性。

另外,如果您想在正则表达式中使用修饰符,比如 'i' 修饰符以执行不区分大小写的搜索,您可以将其放在 RegExp 对象中:

const urlPattern = new RegExp("^(https?|ftp):\\/\\/(?:[^\\s\\/\\?\\.\\#\\=\\[\\]&\"',;:+()@]+?\\.)+[a-z]{2,}(?::\\d+)?(?:[\\/\\?#]\\S*)?$", "i");
const url = "https://www.example.com";

if (urlPattern.test(url)) {
  console.log("Valid URL");
} else {
  console.log("Invalid URL");
}

在这个例子中,我们使用了 RegExp 对象,并将修饰符 'i' 传递给该对象以执行不区分大小写的搜索。

总而言之,正则表达式在识别 URL 时发挥了重要作用。您可以使用它来识别 URL 的不同部分并测试其有效性。