検証にASP.NetRegularExpressionValidatorを使用しています。
テキストのみ
^(a-z|A-Z|0-9)*[^#$%^&*()\']*$
英数字のみ
^[a-zA-Z0-9]*$
数値のみ
^[0-9]*$
多言語(日本語、中国語など)でうまく機能するには、これらの表現を使用する必要があります。
Unicodeプロパティを使用します。
例えば:
\p{L}
あらゆる言語からのあらゆる種類の手紙
\d
数字、.netでは、これらの文字の省略形クラスはUnicodeベースです。
\p{Nd}
表意文字を除くすべてのスクリプトの0から9までの数字
\p{N}
任意のスクリプト内の任意の種類の数字。たとえば、「VII」のようなローマ数字を許可します
最初の式について:範囲(a-z
部分)は、文字クラス内でのみ使用できます。したがって、パーツ(a-z|A-Z|0-9)
は文字通り「az」、「AZ」、または「0-9」のいずれかに一致します。
最初の式を次のように変更できます
^[\p{L}\d]*[^#$%^&*()\']*$
あなたの2番目は
^[\p{L}\d]*$
また
^[\p{L}\p{Nd}]*$
そして最後のもの
^\d*$
また
^\p{Nd}*$