📜  链接的正则表达式 - Javascript (1)

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

链接的正则表达式 - JavaScript

在 JavaScript 中,我们可以使用正则表达式来匹配 URL 链接。对于 Web 应用程序,这是一个非常有用的功能,因为它可以让我们验证用户提供的链接是否有效,或者从文本中提取链接。

匹配 HTTP 和 HTTPS 链接

下面是一个可以匹配 HTTP 和 HTTPS 链接的正则表达式:

/(https?:\/\/[^\s]+)/gi

这个正则表达式可以匹配任何以 http://https:// 开头的链接。例如:

const input = "Check out my website at https://www.example.com";
const pattern = /(https?:\/\/[^\s]+)/gi;
const matches = input.match(pattern);
console.log(matches); // ["https://www.example.com"]
匹配 FTP 链接

FTP 链接的格式类似于 HTTP 和 HTTPS 链接,因此我们可以使用类似的正则表达式来匹配它们:

/(ftp:\/\/[^\s]+)/gi

这个正则表达式可以匹配任何以 ftp:// 开头的链接。例如:

const input = "Download the file at ftp://ftp.example.com/file.zip";
const pattern = /(ftp:\/\/[^\s]+)/gi;
const matches = input.match(pattern);
console.log(matches); // ["ftp://ftp.example.com/file.zip"]
匹配电子邮件地址

电子邮件地址也是一种常见的链接类型。下面是一个可以匹配电子邮件地址的正则表达式:

/[\w-]+@([\w-]+\.)+[\w-]+/gi

这个正则表达式可以匹配任何有效的电子邮件地址。例如:

const input = "My email address is john@example.com";
const pattern = /[\w-]+@([\w-]+\.)+[\w-]+/gi;
const matches = input.match(pattern);
console.log(matches); // ["john@example.com"]
匹配完整的链接

如果您需要精确匹配完整的链接(包括协议、域名、路径等),则可以使用以下正则表达式:

/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})(\/[\/\w .-]*)*\/?$/gi

这个正则表达式可以匹配任何有效的完整链接。例如:

const input = "Please visit my website at https://www.example.com/path/to/page.html";
const pattern = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})(\/[\/\w .-]*)*\/?$/gi;
const matches = input.match(pattern);
console.log(matches); // ["https://www.example.com/path/to/page.html"]
结论

JavaScript 正则表达式可以用来匹配各种类型的链接,包括 HTTP、HTTPS、FTP 和电子邮件地址。使用正确的表达式可以帮助您验证、提取和处理链接数据。