簡體   English   中英

必須包含數字和字母的文本框?

[英]Textbox that MUST contain both numbers and letters?

我想知道有沒有辦法確保用戶同時輸入數字和字母到文本框中,如果沒有提示消息? 我有如下:

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

所以我在這里試圖說的是,如果字符串沒有字母,如果字符串沒有數字,則提示錯誤。 但是,如果你輸入所有字母(或數字),沒有錯誤提示,所以我想知道是否有辦法做到這一點。 我在問題中進行了研究,除了如何允許某些角色之外沒有找到任何東西。

目前,您的代碼說

如果字符串不完全由字母組成,並且不完全由數字組成,則顯示消息

這幾乎與你所追求的完全相反。

要修復它,您需要將“不完全由...”更改為“不包含”,並將“和”更改為“或”:

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;
}

想想簡單:

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

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

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

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

您不需要正則表達式:

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

注意: 切換Char.IsLetter的規范,以便您可以接受所需的字符集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM