2015-07-13 75 views
-1

我有一個場景,連續 - 。或.-不應該被允許在一個URL中。正則表達式匹配連續 - 。或.-(hypen和點)在一個字符串

例如, https://www.test.-nichttps://www.test-.nichttps://www.test.nic--xn/應該允許

你能幫我改進這個正則表達式嗎?

/^(http|https|ftp):\/\/[a-z0-9]+(.[a-z0-9-]+)*.[a-z0-9]{2,5}(:[0-9]{1,5})?(\/.-‌​*)?$/i 
+0

正則表達式應該允許像一個https網址://www.test.nic--xn –

+2

純代碼編寫請求是題外話堆棧溢出 - 我們希望這裏的問題涉及到具體* *編程問題 - 但我們會很樂意幫你自己寫的!告訴我們[您嘗試過的](http://whathaveyoutried.com),以及您卡在哪裏。這也將幫助我們更好地回答你的問題。 – Cerbrus

+0

你嘗試了什麼? – Dzienny

回答

0

可以使用負前瞻:

/^(https?|ftp):\/\/(?=.*?(?:\.-|-\.)[a-z0-9]+(\.[a-z0-9-]+)*\.[a-z0-9]{2,5}(:[0-9]{1,5})?$/i 

(?=.*?(?:\.-|-\.)是負先行如果._-.是那裏的網址,將失敗的比賽。