1

ユーザーが数字と文字の両方をテキストボックスに入力し、そうでない場合はメッセージを表示するようにする方法はあるのでしょうか? 私は次のように持っています:

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

ここで私が言おうとしたのは、文字列に文字が含まれておらず、文字列に数字が含まれていない場合は、エラーを表示するということです。しかし、すべての文字 (または数字) を入力すると、エラー プロンプトが表示されないので、これを行う方法があるかどうか疑問に思っていました。質問を調べたところ、特定の文字を許可する方法以外に何も見つかりませんでした。

4

3 に答える 3

2

現時点では、あなたのコードは言う

文字列が完全に文字で構成されておらず、完全に数字で構成されていない場合にメッセージを表示します

これは、あなたが求めているものとはほぼ正反対です。

これを修正するには、「完全に構成されていない」を「含まない」に変更し、「および」を「または」に変更する必要があります。

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

正規表現は単一の文字または数字のみを検索するようになり、andor.

入力に文字と数字のみが含まれていることを確認したい場合は、別の手順として次の手順を実行できます。

if(Regex.IsMatch(string, @"[^a-zA-Z0-9]"))
{  
    MessageBox.Show("Please Enter only numbers and letters");
    return;
}
于 2013-01-31T17:15:07.917 に答える
1

シンプルに考えてください:

[a-zA-Z0-9]+試してみたい正規表現です。

[a-zA-Z0-9\s]+単語/数字の間に許可されたスペースを含む正規表現です。

ここで正規表現を試してください: http://regexhero.net/

于 2013-01-31T17:15:09.627 に答える
1

あなたがしたいことは、文字列に文字が含まれていない場合、または数字がない場合にメッセージを表示することです。

そのための正規表現も必要ありません。

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

注: Char.IsLetterの仕様を確認して、目的の文字セットが受け入れられるようにしてください。

于 2013-01-31T17:18:31.777 に答える