我使用下面的正則表達式使用JavaScript定期對URL端口
/http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
驗證URL表達現在的形式http://example.com
我想這也驗證端口號的上述只會驗證網址。例如,應該驗證http://example.com:8080或http://example.com:80。
如何修改相同的正則表達式以支持端口號驗證(應該是強制的)?
我使用下面的正則表達式使用JavaScript定期對URL端口
/http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
驗證URL表達現在的形式http://example.com
我想這也驗證端口號的上述只會驗證網址。例如,應該驗證http://example.com:8080或http://example.com:80。
如何修改相同的正則表達式以支持端口號驗證(應該是強制的)?
使用本:
^http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}(?:\:\d+)$
演示在這裏:
僅通過端口號的URL將被驗證,我已經在年底前加(?:\:\d+)
使一個冒號和一個或多個數字可以被驗證。你可以通過使用這樣的量詞{}
明確地把你想要的數字的位數置爲這樣:
(?:\:\d{4})
這將只允許四位數字。結腸
更新後
運算要求做出這個表達式通行證數字2-4
只是quatifier改變
(?:\:\d{2,4})
首先第一件事情,你目前的正則表達式不符合有效比例的有效網址:
其中一個或所有這些限制都可能是故意的,但這不是提及它的缺點。
其次,您可以傳遞/.../i
修飾符來創建不區分大小寫的正則表達式,而不是使用[A-Za-z...]
。
由於考慮到這些事情,下面的更改可:
/^(https?):\/\/([A-Z\d\.-]{2,})\.([A-Z]{2,})(:\d{2,4})?/i
編輯:更新,以數字2和4之間的端口號。
Thx很多。 ..我希望網址應該包含2-4位數之間的端口號。 – testndtv
是否有特殊原因將其限制爲2-4位數?有效的端口號是1到65535範圍內的任何數字(我相信* nix空間(也許是其他的)),1024以下的任何東西都需要root權限來監聽)。 – Phylogenesis
爲什麼你認爲頂級域名會長3個字母? –
你到目前爲止嘗試過什麼?(我不會想這樣對32金徽章的人說這個,對我來說沒有downvote,順便說一句) – Boldewyn
所以你說我不應該只考慮.com,而且.net,.info等 – testndtv