1

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

我试过这段代码

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

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

http://websitename 

并验证我不想要的罚款。当我输入时它确实返回 false

http://websitename@. 

有没有办法可以克服这个问题?我还添加了

http:// 在 passthrough 值中,因为 url 从不验证。

4

4 回答 4

5

您可以使用:

Uri.IsWellFormedUriString(inputUrl, UriKind.RelativeOrAbsolute)
于 2012-12-17T13:48:36.757 回答
1

根据您的性能需求,也许HttpWebRequest为他们提供的网站 url 快速发布并验证您是否收到成功响应可能是一个不错的选择。

于 2012-12-17T13:47:29.673 回答
0

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

于 2012-12-17T13:49:56.707 回答
0

Uri.IsWellFormattedUriString不会解决这里的问题,它包括区分有效 Url 和电子邮件地址的能力。两者都是格式良好的 Uris。

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

使用正则表达式验证 URL

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

Peter Blum 的验证器

或者,如果您想放入自己的 JavaScript 文件,请查看这个 StackOverflow 线程。

使用 jQuery 进行 URL 验证

于 2012-12-17T14:08:24.670 回答