我想驗證用戶輸入是否是電子郵件地址(將成員添加到數據庫)。檢查文本框中的輸入是否爲電子郵件
當驗證事件被調用時,用戶將在TextBox中輸入數據;我想檢查輸入是否是有效的電子郵件地址。所以在字符串中至少包含一個@和一個點(。)。
有沒有什麼辦法通過代碼或MaskedTextbox中的遮罩來完成此操作?
我想驗證用戶輸入是否是電子郵件地址(將成員添加到數據庫)。檢查文本框中的輸入是否爲電子郵件
當驗證事件被調用時,用戶將在TextBox中輸入數據;我想檢查輸入是否是有效的電子郵件地址。所以在字符串中至少包含一個@和一個點(。)。
有沒有什麼辦法通過代碼或MaskedTextbox中的遮罩來完成此操作?
不要打擾正則表達式。 It's a Bad Idea.
我通常從未使用異常來控制程序流程,但就個人而言,在這種情況下,我寧願讓誰創造了MailAddress
類專家爲我做的工作:
try
{
var test = new MailAddress("");
}
catch (FormatException ex)
{
// wrong format for email
}
我建議你使用Regular Expression,如:
@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
要驗證文本框的輸入。
示例代碼:
private void button1_Click(object sender, EventArgs e)
{
Regex emailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?
^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+
[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
if (emailRegex.IsMatch(textBox1.Text))
{
MessageBox.Show(textBox1.Text + "matches the expected format.", "Attention");
}
}
編輯:我發現了一個更好的,更全面的Regex
。
正則表達式簡單的電子郵件比賽:
@"\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b"
正則表達式RFC 2822標準的電子郵件比賽:
@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
參見:如何:Verify that Strings Are in Valid Email Format - MSDN
正則表達式您正在尋找應該是:
"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))
(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,24}))$"
(來自同一source)
不要使用正則表達式,它忽略了很多情況,甚至不好笑,除了聰明的人以前,我們已經來解決這個問題。
using System.ComponentModel.DataAnnotations;
public class TestModel{
[EmailAddress]
public string Email { get; set; }
}
這應該是最佳答案。它使用@ Html.ValidationMessageFor(m => m.Email) – SeanKPS
我推薦你使用這種方式,它對我來說很好。
Regex reg = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
if (!reg.IsMatch(txtEmail.Text))
{
// Email is not valid
}
爲表單提供了電子郵件驗證。請提供足夠的詳細信息來回答問題...... OP提到數據來自「TextBox」,驗證事件被調用,它應該匹配一個字符串'atleast @和點(。)'。您的代碼如何滿足這些要求,以及爲了完成OP的目標而使用了'isValid'和'UserMessage'變量? – CPHPython
查找一個正則表達式驗證電子郵件,你應該能夠輕鬆地找到[在C#WinForms應用程序電子郵件驗證]這些 – x4rf41
可能重複(http://stackoverflow.com/questions/1199413/email- validation-in-ac-sharp-winforms-application) – Liam