测试用户是否输入了电子邮件格式ASP.NET(VB)

时间:2010-06-19 14:27:08

标签: asp.net vb.net email textbox

我有TextBox,我想强制用户在此字段中输入电子邮件格式,例如(example@mail.com)?

我不想使用FilteredTextBoxExtenderRegularExpressionValidator

我想这样做manualy

3 个答案:

答案 0 :(得分:1)

使用System {Net.Mail的MailAddress类。如果您传入的内容不是有效的电子邮件地址,则会失败。

示例:

How do I validate email address formatting with the .NET Framework?

答案 1 :(得分:0)

你真的要重新发明轮子。 但如果这是你的愿望,你必须使用内置于String对象的字符串操作函数。

首先检查文本中是否有@符号。

使用String.Contains检查。

或者您可以使用String.IndexOf来检查@符号是否存在,以及是否存在该索引。 (将字符串视为字符数组)

然后检查@符号前是否有任何(和多少)字符。 如果符号@符号在第4个索引中,那么你知道在等之前有3个字符。

There's plethora of functions for the String object。您可能必须使用Length函数和String.SubString来检索字符串的一部分。

获取@符号的索引和。符号并检查其间是否至少有3个字符。

我似乎无法想到所有可能性,但首先列出所有可能性并逐一检查。

您还可以使用Contains方法检查是否存在非法字符:)

编辑:String.LastIndexOf将返回找到指定字符的最后一个索引;)

你计算并检查@符号是否被多次发现等等

String.IndexOfAny(Char[])

String.IndexOfAny Method (Char[], Int32)

String.IndexOfAny Method (Char[], Int32, Int32)

答案 2 :(得分:0)

这是我在互联网上找到的最佳方式。

Regex.IsMatch(YourStringEmail, "^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" + _
                  "(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$")

谢谢。