如何判断URL是否合法?判断的原则是什么?

sun_Ke 2008-04-09 12:31:14
我要判断用户输入的一个网址是否合法,从哪些方面判断?
如果用正则表达式去写,应该怎么写?
我这边有两个正则表达式是判断url是否合法的,烦请高人帮忙看下对不对

第一个:(([\w]+:)?//)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?

第二个:^(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)
...全文
1675 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xz_xq 2008-04-18
  • 打赏
  • 举报
回复
JF...
chengqscjh 2008-04-09
  • 打赏
  • 举报
回复
mark,正则也不会
majianbing 2008-04-09
  • 打赏
  • 举报
回复
写法有很多,看你想实现到什么程度.

关于正则表达式可以参考:
http://www.hiwiz.com/NewsList.aspx?nc_id=WANGLUOBIANCHENG&searchType=1&keyWord=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
sy_binbin 2008-04-09
  • 打赏
  • 举报
回复
^http(s)?://(?!([\w-]+\.[\w-]+$))([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sun_Ke 2008-04-09
  • 打赏
  • 举报
回复
谢谢各位
xinghongyang 2008-04-09
  • 打赏
  • 举报
回复
晕倒,这样的正则表达式谁看得懂啊
live_7sky 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 live_7sky 的回复:]

应该根据最标准的 URL 去判断

验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

我就是这样 检验的。
[/Quote]
Magic_YJL 2008-04-09
  • 打赏
  • 举报
回复
偶是这样校验滴

public static bool IsUrl(string s)
{
string pattern = @"^(http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9%\-_@]+\.[A-Za-z0-9%\-_@]+[A-Za-z0-9\.\/=\?%\-&_~`@:\+!;]*$";
return Regex.IsMatch(s, pattern, RegexOptions.IgnoreCase);
}
sun_Ke 2008-04-09
  • 打赏
  • 举报
回复
不知道各位是如何校验url是否合法的?能不能说下
wuhq030710914 2008-04-09
  • 打赏
  • 举报
回复
这个问题只怕很难给出标准答案吧,简单的校验可以试试:
(http://)?([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?
jxdyzwh 2008-04-09
  • 打赏
  • 举报
回复
同意楼上说的
hy_lihuan 2008-04-09
  • 打赏
  • 举报
回复
晕倒,这样的正则表达式谁看得懂啊。。。
一开始就不太对吧,我输入:httpssssssss://www.baidu.com应该符合的吧
我建议lz还是先去找到url的标准说明才可能写出正确的正则,不然的话肯定会遗漏各种特殊情况的
live_7sky 2008-04-09
  • 打赏
  • 举报
回复

应该根据最标准的 URL 去判断

验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

否则 我 输入URL; 百度 也可以转向:www.baidu.com

你说 百度 是不是标准 的?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧