C# 中判断URL 的方法?
数据库中的邮箱有的是以http://开头,有的是以www开头;然后有的是以com结尾,有的是cn结尾,甚至有的没有后缀。我听人说.NET自带一个方法能够自动判断并且能够通...
数据库中的邮箱有的是以http:// 开头,有的是以www开头;然后有的是以com结尾,有的是cn结尾,甚至有的没有后缀。
我听人说.NET自带一个方法能够自动判断 并且能够通过.
求这个方法,并实现.
求这个方法,并实现.
//正则判断
string reg = @"^(http(s)?:\/\/)?(www\.)?[\w-]+(\.\w{2,4})?\.\w{2,4}?(\/)?$";
Regex r = new Regex(reg);
//给网址去所有空格
string urlStr = webresourceaddress.Trim();
Match m = r.Match(urlStr);
//判断是否带http://
if (!m.Success)
return false;
//给不带http://开头的加上
urlStr = urlStr.Replace("http://", "");
urlStr = urlStr.Insert(0, "http://");
我已经做出来了。谢谢大家的参与.
最佳答案我不知道该选哪个了。 展开
我听人说.NET自带一个方法能够自动判断 并且能够通过.
求这个方法,并实现.
求这个方法,并实现.
//正则判断
string reg = @"^(http(s)?:\/\/)?(www\.)?[\w-]+(\.\w{2,4})?\.\w{2,4}?(\/)?$";
Regex r = new Regex(reg);
//给网址去所有空格
string urlStr = webresourceaddress.Trim();
Match m = r.Match(urlStr);
//判断是否带http://
if (!m.Success)
return false;
//给不带http://开头的加上
urlStr = urlStr.Replace("http://", "");
urlStr = urlStr.Insert(0, "http://");
我已经做出来了。谢谢大家的参与.
最佳答案我不知道该选哪个了。 展开
3个回答
展开全部
“((http|https|ftp):(\/\/|\\\\)((\w)+[.])
{1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((\/[\~]*|\\[\~]*)(\w)+)|[.]
(\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)
+)*)*)”(不含外侧中文引号),
解析:要判断字符串是否为网址,需要下面几个条件。
条件一:常见的网址是以http://、https://或ftp://开头,而这
部分转换为正则表达式就为(http|https|ftp):(\/\/|\\\\)。
条件二:在http://后面必须要紧跟一个单词字符(一般为www),
然后就是字符“.”(这样的组合必须出现一次或多次),最后就是域
名(net、com、cn或数字的IP地址等),这部分转换为正则表达式就
为((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})。
条件三:在完整的链接后,可能会出现下一级或更多级的目录,
甚至是“~”符号,此条件变为正则表达式为(((\/[\~]*|\\[\~]*)
(\w)+)|[.](\w)+)*。
条件四: 链接的末尾还可以带有参数,如前面提到的230.
aspx&e=9690或是?Page=2&action=display等,换为正则表达式为(((([?]
(\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*。
===============================
代码如下 :
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text.RegularExpressions;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sRegex = @"(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*";
Regex myrx = new Regex(sRegex);
Match match = myrx.Match("http://www.hao123.com");
if (!match.Success)
{
Response.Write("网址输入有错");
}
else
{
Response.Write("网址正确");
}
}
}
===============================
楼下的,你有没有试过啊!
抛出异常,要占用多少资源啊!
何况根本就不行,这个我早想过了!
{1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((\/[\~]*|\\[\~]*)(\w)+)|[.]
(\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)
+)*)*)”(不含外侧中文引号),
解析:要判断字符串是否为网址,需要下面几个条件。
条件一:常见的网址是以http://、https://或ftp://开头,而这
部分转换为正则表达式就为(http|https|ftp):(\/\/|\\\\)。
条件二:在http://后面必须要紧跟一个单词字符(一般为www),
然后就是字符“.”(这样的组合必须出现一次或多次),最后就是域
名(net、com、cn或数字的IP地址等),这部分转换为正则表达式就
为((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})。
条件三:在完整的链接后,可能会出现下一级或更多级的目录,
甚至是“~”符号,此条件变为正则表达式为(((\/[\~]*|\\[\~]*)
(\w)+)|[.](\w)+)*。
条件四: 链接的末尾还可以带有参数,如前面提到的230.
aspx&e=9690或是?Page=2&action=display等,换为正则表达式为(((([?]
(\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*。
===============================
代码如下 :
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text.RegularExpressions;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sRegex = @"(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*";
Regex myrx = new Regex(sRegex);
Match match = myrx.Match("http://www.hao123.com");
if (!match.Success)
{
Response.Write("网址输入有错");
}
else
{
Response.Write("网址正确");
}
}
}
===============================
楼下的,你有没有试过啊!
抛出异常,要占用多少资源啊!
何况根本就不行,这个我早想过了!
展开全部
1.通过统一的方法过滤
2.通过不同的构造器创建统一的URL。
没有前缀还可以加默认的。没有后缀(.com, .cn)是没可能的
2.通过不同的构造器创建统一的URL。
没有前缀还可以加默认的。没有后缀(.com, .cn)是没可能的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Uri uri = new Uri("URL 地址");
如果是错误的 URL ,会抛出异常。
如果是错误的 URL ,会抛出异常。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询