2012-08-03 37 views
0

我不知道如何編寫正則表達式,但我需要使我的程序之一使用localhost url有效。這是程序使用,以驗證URL正則表達式:如何將localhost添加到php正則表達式?

preg_match ('/^https?:\/\/(([a-z0-9-]+\.)+[a-z]{2,6}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:[0-9]+)?(\/?|\/\S+)$/iu', $url) 

我的地方網站的根網址爲http://localhost/,如何使它驗證?

回答

2

的正則表達式可以在某些地區劈裂:

https?:// 
(
    ([a-z0-9-]+\.)+[a-z]{2,6} 
    |\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 
) 
(:[0-9]+)? 
(/?|/\S+) 

爲了將localhost添加到一組有效的url,只需在協議之後的那兩個開頭括號之間添加localhost|即可。

+0

需要注意的事項:您的正則表達式不允許任何IPv6網址或其他網址,例如我使用'server'作爲內部網絡地址。 – 2012-08-03 22:50:26

+0

我使用的程序是從網站獲取視頻或圖像。我不知道作者是否添加了一些限制來排除某些網址。我不知道是否可以更改爲FILTER_VALIDATE_URL。對我有何建議? – Jenny 2012-08-03 23:16:39

+0

我不知道你的項目是否足夠決定,但通常這可能是一個更好的主意 - 只要具體的擴展可用。 – 2012-08-03 23:21:05

4

我看你已經可以選擇IPv4地址,所以只需要另一個選項localhost

\d{1,3}鏈之後,就在)之前,加上|localhost

4

我只是添加localhost作爲一個選項模式的開始,所以它的開始是這樣的:

preg_match('/^https?:\/\/(localhost|([a-z0-9-]+\.)+[a-z]{2,6} (the rest as before) 
相關問題