我有一个用户进入该网站的表单。问题是一些用户把他们的电子邮件地址放在我不想要的地方。我想要一种方法来检查网址是否结构良好。例如no @,必须有一个根域。 www子域是可选的。我无法在任何地方找到它。
我试过这段代码
if (!Uri.TryCreate("http://" + websiteurl, UriKind.Absolute, out uri) || null == uri)
错误时返回false但我的问题是它仍然在没有根域的情况下验证,例如我可以放入
http://websitename
并验证我不想要的罚款。当我放入
时,它确实返回falsehttp://websitename@.
有没有办法可以解决这个问题?我也添加了
http://在passthrough值中,因为url永远不会验证。
答案 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验证器,他已经为您完成了工作。
或者,如果您想要输入自己的JavaScript文件,请查看此StackOverflow线程。