我正在构建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