2011-06-21 82 views
0

我有這樣的正則表達式代碼幫助,正則表達式代碼

/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i 

它的工作原理,但有你需要的HTTP問題 :// url中它來驗證,我做什麼,用戶不希望添加http://他們想要只有example.com的網址,如果它可能我需要它的工作天氣它有http://或不
我不知道如何使自己的正則表達式和ive搜索,但無法找到一個我所需要的,除非我只是沒有找到正確的地方。 (谷歌:P)

+0

[PHP驗證/正則表達式的URL]的可能重複(http://stackoverflow.com/questions/206059/php-validation-regex-for-url) – kennytm

回答

0

/^((https?:\/\/+)?[\w-]+.[\w-]+)/i

2

你可以只讓選

/^((?:https?:\/\/+)?[\w\-]+\.[\w\-]+)/i 

圍繞你不想要的部分是(?:)是一個非捕獲組,?事後使它可選。

我不確定第二次斜槓後+有什麼好處,它說至少有一個前面的字符。這意味着它也允許像http://////////這樣的東西。

我希望你知道,這個正則表達式遠沒有匹配有效的URL。

例如它會匹配這樣的東西

http://////////------------.- 

或至少

http://N.O 
     ^after this position you can write what you want and it will match valid. 

Here on Regexr你可以看到你的正則表達式是匹配。

查看紫色編碼器的答案可能是更好的解決方案。

0

我使用的是:

//驗證字符串是否至少包含一個點。

var filterWebsite = /^([a-zA-Z0-9:_\.\-/])+\.([a-zA-Z0-9_\.\-/])+$/; 
4

不要打擾正則表達式。使用parse_url函數。