1

winform アプリの入力ボックスを検証するために許可されていない長い文字セットがあります。

したがって、許可されていない長いリストを作成するのではなく、許可されている短いリストを作成することを考えました。

許可されるセットは(a-z,A-Z, 0-9,@,.).Rest 入力できるすべてのものは許可されません。

これは、私がこのために作成した正規表現です。

Regex.IsMatch(textBox1.Text, @"[@\.\w]+$")

場合によってはうまくいくようですが、この形式normal character or number special character normal character or numberでデータを入力すると、いくつかの例が壊れているようee(vv, 55)44,aba&3Bです。

これで何が悪いのか理解できません。

4

3 に答える 3

2

すべての文字列を検証するのではなく、最後の部分を検証するため、正規表現は無効です。^- 行頭記号で開始する必要があります。

Regex.IsMatch(textBox1.Text, @"^[\w@.]*$")

\wまた、すべての言語の文字を意味するため、文字列"абц"も検証します。したがって、英語のみが必要な場合は、

Regex.IsMatch(textBox1.Text, @"^[a-zA-Z0-9@.]*$")
于 2012-11-07T06:32:10.507 に答える
1

これを試して :

Regex.IsMatch(textBox1.Text, @"^[a-zA-Z0-9@.]*$")
于 2012-11-07T06:31:55.490 に答える
0

使用する

^[-a-zA-Z0-9  _  -  \. @]*

正規表現テキストとして。

于 2012-11-07T06:41:10.947 に答える