2013-01-31 59 views
1

我想知道有沒有辦法確保用戶輸入數字和字母到文本框,如果不提示消息?我有如下:必須包含數字和字母的文本框?

if(!Regex.IsMatch(string, @"^[a-zA-Z]+$") && !Regex.IsMatch(string, @"^[1-9]+$")) 
{ 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

所以我想在這裏說的是,如果該字符串沒有一個字母,如果字符串沒有一個號碼,提示錯誤。但是,如果你輸入所有的字母(或數字),沒有錯誤提示,所以我想知道是否有辦法做到這一點。我研究了這些問題,沒有發現任何東西,除了如何允許某些字符。

回答

1

你想要做的是顯示消息,如果字符串沒有任何字母或它不具有任何數字。

你並不需要一個正則表達式,要麼:

if(!str.Any(Char.IsLetter) || !str.Any(Char.IsDigit)) { 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

注:再檢查一下規格爲Char.IsLetter,這樣的字符集是你想做的事可以接受的。

+0

完美!非常感謝!! – dcolton147

2

此刻,你的代碼說

顯示的信息,如果該字符串不是完全由字母,而不是完全由數字

這幾乎是完全相反的是什麼你在追求。

爲了解決這個問題,你需要改變「不完全由」到「不包含」和「和」「或」:現在

if(!Regex.IsMatch(string, @"[a-zA-Z]") || !Regex.IsMatch(string, @"[1-9]")) 
{ 
    MessageBox.Show("Please Enter both numbers and letters"); 
    return; 
} 

正則表達式查找只單個字母或數字,and現在是or

如果你想確保你的輸入只有包含任何字母數字,你可以做以下作爲單獨的步驟:

if(Regex.IsMatch(string, @"[^a-zA-Z0-9]")) 
{ 
    MessageBox.Show("Please Enter only numbers and letters"); 
    return; 
} 
1

想簡單:

[a-zA-Z0-9]+是正則表達式,你可能想嘗試。

[a-zA-Z0-9\s]+是在單詞/數字之間允許有空格的正則表達式。

這裏試試你的正則表達式:http://regexhero.net/

相關問題