[英]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.