对于给定的字符串,如何实现一个程序判断其是不是一个合法的URL,会有哪些陷阱?
解决这个,先判断URL的形式:
1、如何判断开始
https://xxxxxhttp://xxxxxftp://ssssurl://xxxxxchrome://xxxxx[各种软件的名字缩写]://xxxxx 例如 chrome pplive 迅雷 等等如何判断各种软件名字缩写?1、枚举【肯定写不完】2、找共性:这类协议头肯定没有:.<>3、找共性:这类协议头肯定是字符和数字的组合
如何判断结束1、空格是不是URL的结束?【空格不能】
好了 问题就好办了另外 有个问题 就是全中文是不是协议开始?目前来说 显然不是,但是结尾有可能,因为有 .中国 这样的蛋疼域名开卖了【你会使用这种全中文的URL么?反正我是不会的。】所以 要排除://前的各种非英文组合。
url1='http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=%E5%8D%95+%E7%8B%AC&f=8&rsv_bp=1&rsv_spt=1&wd=++%E5%AF%B9%E4%BA%8E%E7%BB%99%E5%AE%9A%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%8C%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%88%A4%E6%96%AD%E5%85%B6%E6%98%AF%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%90%88%E6%B3%95%E7%9A%84URL%EF%BC%8C%E4%BC%9A%E6%9C%89%E5%93%AA%E4%BA%9B%E9%99%B7%E9%98%B1%EF%BC%9F&rsv_n=2&rsv_sug3=1&rsv_sug4=19&inputT=539'; //我们那个百度的搜索URL做测试 搜索引擎的URL最变态了 url2='你妹的这肯定不是url了把~~对吧~~虽然有//:'; reg=/^([a-zA-Z]*):\/\/([^ ]*)$/; if(reg.test(url1)){ alert('yes') }else{ alert('no') }; if(reg.test(url2)){ alert('yes') }else{ alert('no') };
可以使用正则表达式来解析.javascript
正则表达式
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
解决这个,先判断URL的形式:
1、如何判断开始
https://xxxxx
http://xxxxx
ftp://ssss
url://xxxxx
chrome://xxxxx
[各种软件的名字缩写]://xxxxx 例如 chrome pplive 迅雷 等等
如何判断各种软件名字缩写?
1、枚举【肯定写不完】
2、找共性:这类协议头肯定没有:.<>
3、找共性:这类协议头肯定是字符和数字的组合
如何判断结束
1、空格是不是URL的结束?【空格不能】
好了 问题就好办了
另外 有个问题 就是全中文是不是协议开始?
目前来说 显然不是,但是结尾有可能,因为有 .中国 这样的蛋疼域名开卖了【你会使用这种全中文的URL么?反正我是不会的。】
所以 要排除://前的各种非英文组合。
可以使用
正则表达式
来解析.javascript