2013-06-19 51 views
0

我正在使用以下表达式进行URL验证。URL正则表达式更新

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

然而,当我有

"httpcolonforwardslashessite" (colon = : and foward slashes = //) 

它仍然并将其作为一个URL。我如何修改上述表达式以确保最后有“.com/net”?

谢谢

tldr:我想在URL的末尾检查.com或.net。我可以做些什么改变以达到这个目的?

+1

你可能想看看在http:// stackoverflow.com/questions/833469/regular-expression-for-url – Omar

+0

谢谢...但这比我希望的复杂得多...非常复杂的正则表达式。我能做些什么来在最后检查.com或.net的末尾添加一个“子句”?我想用HTTP网址://谷歌拒绝 – 007

回答

4

不能使用内置的功能,而不是正则表达式?

Uri.TryCreate方法可以帮助你。

此方法

  • 返回Boolean值,该值是true如果Uri成功创建;否则,false
  • 可以检查不同种等的绝对和/或相对URL的使用接受UriKind Enumeration作为参数的过载。
+0

严重的是,我学会在这个网站每天都有新的东西,甚至没有问什么:d – Nolonar

+0

@Nolonar每个人都学会在这里......从新手到过经历。 –

+0

已经尝试过......在某些条件下这个exp会通过失败。 :( – 007

1

假设你只想要.COM,这将工作:

^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?\.com([/\w \.!"£$%^&\(\)\*])* 

或这样一来不仅包括.COM from here

^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$ 
+0

你确定你不需要逃脱'.'? – Nolonar

+0

怎么样.com或.net(而不仅仅是.COM) – 007