我需要驗證網址,這應該是像正則表達式爲有效的URL
google.com or
yahoo.co.uk etc
我的意思是我不要求HTTP或www。 我的正則表達式代碼是這樣的,但它不適合我。
/^[a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9]\.[a-zA-Z]{2,}$/
我需要驗證網址,這應該是像正則表達式爲有效的URL
google.com or
yahoo.co.uk etc
我的意思是我不要求HTTP或www。 我的正則表達式代碼是這樣的,但它不適合我。
/^[a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9]\.[a-zA-Z]{2,}$/
您當前的正則表達式不會在.
正好前三個字符工作,因爲它預期字符匹配[a-zA-Z0-9]
。您的正則表達式只允許在輸入中的任意位置輸入一個.
。
對於可變長度字符串,您需要使用+
或*
或{}
語法,就像您對正則表達式的最後部分所做的一樣。
基本上保持你似乎被拍攝的,但有它不同長度的工作相同的驗證,請嘗試:
/^[A-Z\d-]+(\.[A-Z\d-]+)*\.[A-Z]{2,}$/i
即:
[A-Z\d-]+
匹配一個或多個字母,數字或連字符,後面跟着一個點,接着通過一個或多個這些字符的
(\.[A-Z\d-]+)*
零個或多個實例中,隨後
\.[A-Z]{2,}
帶有兩個或更多A-Z的最終點。
請注意,如果您將i
標誌添加到正則表達式以使其不區分大小寫,您可以僅使用大寫A-Z
範圍。
您的原始圖案只允許具有第一部分不啓動或以短劃線結尾的網址。如果這很重要,我已經爲你做了一個模式。
/^(?:(?!-)[a-z\d-]+[^-]\.)+[a-z]{2,6}$/i
此修復NNNNN在他的回答解決同樣的問題,但它也不允許URL中的任何一部分啓動或連字符結束。
我也可以推薦regexpal來實時測試匹配。它使用JavaScript風格的正則表達式匹配。
將正則表達式置於頂部字段中,並將測試數據置於底部。您將需要刪除封裝它的斜槓。檢查 「不區分大小寫(一)」 和 「^ $匹配在換行符(M)」
一些測試數據框:
google.com
yahoo-.com
WWW。 YAHOO.co.uk
-yahoo.co.uk
http://www.regular-expressions.info/
hey.subdomain.sub.sub.domain。COM
co.uk
現在,兩者的區別^ $與否將證明自己。你會看到一些網址不匹配,即使它們是有效的。多行(m)標誌允許您將輸入中的每一行視爲單獨的字符串。如果整個字符串匹配,我給你的正則表達式只會匹配,但即使如此,一些URL也是有效的。不區分大小寫(i)等於正則表達式末尾的「i」。
嘗試刪除錨線(^)和行($)結束的開始,看看如何匹配。
我不知道你是如何運行你的比賽,但是這是值得考慮的。
我normaly使用REG-EX,需要3個字符,一個點,然後ATLEAST 3個新角色。可能對你有用 – DiederikEEn 2013-05-02 11:57:09
請檢查這個問題,根據你的需要,它有不同的URL驗證器:http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check-if -a-字符串是一個有效的URL – 2013-05-02 11:57:17
@DiederikEEn u能顯示它PLS – Techy 2013-05-02 11:58:59