2013-08-02 43 views
3

只有一個URL驗證我使用以下正則表達式表達式經常用於目前在JavaScript

/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/ 

它驗證URL等 https://scores.arrowsight.com/scores/ORoom/Hospital%20A1/Hospital%20A2 但它不應該驗證URL等 http://www.google.co.in/http://www.google.co.in/ 上面的URL不應該允許但它允許http://www.google.co.in/http://www.google.co.in/ 有人可以幫我修改此? 在此先感謝。

+0

該URL是有效的。 – Blender

+0

除了需要進行URL編碼之外,該URL也是有效的。如果你把它放在瀏覽器中,它會起作用。你只想要允許URL安全字符? – FakeRainBrigand

+0

雅是有效的,但我想驗證只有一個網址應該沒有兩個網址... –

回答

1

試試這個正則表達式負前瞻:

/^(ftp|https?):\/\/(\w+:{0,1}\w*@)?((?![^\/]+\/(?:ftp|https?):)\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/ 

Live Demo

+0

僅適用於http://www.google.co.in/http://www.google.co.in/不適用於https://scores.arrowsight.com/scores/ORoom/Hospital%20A1/Hospital %20A2&https://scores.arrowsight.com/ –

+0

在第一次斜槓之後的任何地方都可以修改它以禁止'(?:ftp | https?)'。 – anubhava