對於初學者,我已經檢查了其他一些正則表達式線程,這不是經常問到的「如何使用正則表達式驗證URL」問題。使用括號和插入符號的正則表達式驗證URL
我正在檢查引用的URL是http還是https,並且「子域」包含'staging','www'或'search'。
^(https|http)://(staging|www|search).mysite.com
(這個問題已經解決了,編輯後的新問題),我相信我有這個問題涉及相鄰開口插入符的括號。
任何想法?
此外,我會怎麼去允許.com部分之後的任何東西?出於某種原因,我可以在URL前面的字符爲例如2http://staging.mysite.com仍然可以工作,爲什麼?
編輯:我想我的瀏覽器可能已經緩存了原始正則表達式腳本,因爲原始問題現在已修復。
現在我唯一的問題是如何確保2http://staging.mysite.com不會驗證?我認爲插入符表示字符串必須以http或https開頭。
我做一個的preg_match,我想它只是檢查是否字符串包含上述要求,但不檢查,看它是否真正與HTTP或HTTPS開頭
什麼是錯誤?括號是好的。 (和你的點是匹配的一切,但沒有什麼大不了的)。也嘗試逃避正斜線。 '\'' – sweaver2112 2012-02-20 22:54:34
@ sweaver2112由於某些原因,即使URL實際上並未以http或https開頭,字符串也會在preg_match中進行驗證。也就是說,我可以在http之前添加任何內容,只要網址的其餘部分符合preg匹配,並且正則表達式將傳遞爲正確,即使它不正確。 – Eric 2012-02-20 23:02:29
將字符串的開頭添加到您的模式中,如下所示:'^' – Basti 2012-02-20 23:04:10