我正在構建Facebook應用程序,該應用程序可從用戶的Facebook帳戶中的各種來源獲取網址 - 例如用戶喜歡的網址。無法解析它們的網址會識別「無效」網址
我遇到的一個問題是,許多Facebook條目都有字符串,它們的「網站」和「鏈接」字段中沒有網址。 Facebook不檢查用戶輸入,所以這些字段基本上可以包含任何字符串。
我希望能夠處理在這些領域中的字符串,從而網址像"http://google.com"
,"https://www.bankofamerica.com"
,"http://www.nytimes.com/2011/06/13/us/13fbi.html?_r=1&hp"
,"bit.ly"
,"www.pbs.org"
都接受。
而所有的字符串如"here is a random string of text the user entered"
,"here'\s ano!!! #%#$^ther weird random string"
都被拒絕。
在我看來,「確定」URL的唯一方法就是試圖解決它,但我相信這將是非常耗費資源的。
任何人都可以想到巧妙的方式來正則表達式或以其他方式分析這些字符串,使得「很多」的URL被正確捕獲 - 80%? 95%99.995%的網址?
謝謝!
編輯:僅供參考,我正在用Python開發。但是語言不可知的解決方案也很棒。
我強烈建議不要使用DNS進行URL驗證,因爲它很可能具有無法通過DNS解析的語法有效URL,並且取決於服務器當前對域名服務的訪問狀態,通常可解析的URL可能不會在任何特定時刻解決。 – 2011-06-13 18:34:09