用于 URL 验证的通用标准正则表达式?



P.S:请不要将其标记为重复,我见过许多其他问题。
我有一组要验证的 URL,例如:

https://pqr-aaa.abc.xyz.com:8383
http://172.24.100.200:6767
等等。我正在用javascript验证它们。我看过很多问题,找到了我正在寻找的正则表达式。这似乎符合我的需要:

^(http://www.|https://www.|http://|https://)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?|^((http://www.|https://www.|http://|https://)?([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$


我的问题是,是否有每个人都使用的URL验证正则表达式的通用标准,或者我们只是使用适合我们需求的正则表达式?

我相信下面的正则表达式适用于所有 URL 验证:

^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$

这个小的变化也将允许http/https之外的其他协议

^(?:(http(s)?|gopher|ftp)://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$

最新更新