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