您好,匿名用户
随意问技术百科期待您的加入

如何实现一个判断URL合法性性的程序?

0 投票

对于给定的字符串,如何实现一个程序判断其是不是一个合法的URL,会有哪些陷阱?

用户头像 提问 2014年 6月7日 @ Viktor 上等兵 (290 威望)
分享到:

1个回答

0 投票

解决这个,先判断URL的形式:

1、如何判断开始

https://xxxxx
http://xxxxx
ftp://ssss
url://xxxxx
chrome://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')
};
用户头像 回复 2014年 6月7日 @ Kennen 上等兵 (442 威望)
提一个问题:

相关问题

0 投票
1 回复 6 阅读
用户头像 提问 2014年 5月14日 @ Hecarim 上等兵 (361 威望)
0 投票
1 回复 35 阅读
用户头像 提问 2013年 11月23日 @ Jarvan IV 上等兵 (203 威望)
0 投票
1 回复 78 阅读
0 投票
1 回复 32 阅读
0 投票
1 回复 36 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...