用于url验证的Javascript和PHP正则表达式


Javascript and PHP Regular Expression for url validation

可能重复:
用于URL验证的正则表达式(在JavaScript中)

因此,我看到了许多类似的问题和答案,但找不到适合我特定需求的解决方案。

我在Regex很糟糕,正在努力获得一个简单的Regex来进行以下url验证。

domain.com
domain.com/folder
subdomain.domain.com
subdomain.domain.com/folder

还验证可选的http://和http://www.会非常有帮助。谢谢

尽可能接近:

/[a-z]+:'/'/(([a-z0-9][a-z0-9-]+'.)*[a-z][a-z]+|(0x[0-9A-F]+)|[0-9.]+)'/.*/

请注意,您的问题并没有将URL限制为一组协议、TLD或字符集。

skype://18005551212gopher://localhost这样的东西是一个有效的URL。见鬼,根据您使用的浏览方式,以下可能都是访问同一服务器(尽管不是完全相同的虚拟主机)的有效方法:

  • https://stackoverflow.com/
  • http://64.34.119.12/
  • http://1076000524/
  • http://0x4022770C/

它们都在Firefox中为我工作。

如果您想要进一步的限制,请确定它们是什么。你愿意牺牲有效的协议吗?你真的只对一两个协议感兴趣吗?

更具体的问题会给你一个更具体的答案。