我有TextBox
,我想强制用户在此字段中输入电子邮件格式,例如(example@mail.com)?
我不想使用FilteredTextBoxExtender
或RegularExpressionValidator
。
我想这样做manualy
。
答案 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将返回找到指定字符的最后一个索引;)
你计算并检查@符号是否被多次发现等等
答案 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}))$")
谢谢。