我的应用程序中有一个文本框,可以是电子邮件或组名。
我需要做的是确定这个文本框是否是电子邮件,然后做一些事情。
我现在将文本框的内容传递给变量
var test = new MailAddress(txtRecipents.Text)
我现在想做的不是将文本框值放入变量中,而是想在if语句中确定它
If (txtRecipents.txt is an email)
{
...Do something here
}
几乎像是或否的问题。
例如:
如果文本框值是电子邮件,请执行此操作 如果文本框值不是电子邮件,请执行其他操作
我希望如果不是,我会澄清
*编辑*
基本上我并不关心垃圾邮件等,因为它是一个永远不会看到互联网的内部应用程序。
我只是想确定它是文本框中的电子邮件还是组名,因为应用程序应该同时使用
答案 0 :(得分:0)
如果您仅关注的电子邮件地址格式有效:
var test = new MailAddress(txtRecipients.Text)
if (test.Address == txtRecipients.Text)
{
// valid email address...
}
答案 1 :(得分:0)
//This should fail
string s = "ssharp@@@@@@@bogusemail.com";
Regex regex = new Regex(@"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$");
Match match = regex.Match(email);
if (match.Success)
{
//do something
}
else
{
//do the other thing
}
答案 2 :(得分:0)
使用" System.Net.Mail.MailAddress"可以是一个很好的解决方案请记住:
您可以在此处找到处理异常的代码段:
try {
var addr = new System.Net.Mail.MailAddress(txtRecipents.Text);
if (txtRecipents.Text == addr.Address)
{
// valid email address
}
}
catch {
// NOT a valid email address
}