验证网站字符串c#

时间:2012-12-17 13:44:22

标签: c# asp.net validation

我有一个用户进入该网站的表单。问题是一些用户把他们的电子邮件地址放在我不想要的地方。我想要一种方法来检查网址是否结构良好。例如no @,必须有一个根域。 www子域是可选的。我无法在任何地方找到它。

我试过这段代码

if (!Uri.TryCreate("http://" + websiteurl, UriKind.Absolute, out uri) || null == uri)

错误时返回false但我的问题是它仍然在没有根域的情况下验证,例如我可以放入

http://websitename 

并验证我不想要的罚款。当我放入

时,它确实返回false
http://websitename@. 

有没有办法可以解决这个问题?我也添加了

http://在passthrough值中,因为url永远不会验证。

4 个答案:

答案 0 :(得分:5)

您可以使用:

Uri.IsWellFormedUriString(inputUrl, UriKind.RelativeOrAbsolute)

答案 1 :(得分:1)

根据您的效果需求,可能会为他们提供的网站提供快速HttpWebRequest,并确认您获得成功回复可能是一个不错的选择。

答案 2 :(得分:0)

您可以尝试使用正则表达式。

答案 3 :(得分:0)

Uri.IsWellFormattedUriString 不会解决此问题,其中包括区分有效网址和电子邮件地址的功能。两者都是格式良好的Uris。

使用正则表达式。这是使用C#的MS论坛中的一个:

Url validation with Regular Expression

但是在发送到服务器之前你应该真正验证它。如果您使用Peter Blum验证器,他已经为您完成了工作。

Peter Blum's Validators

或者,如果您想要输入自己的JavaScript文件,请查看此StackOverflow线程。

Url Validation using jQuery