C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■95919 / )  Re[2]: VB,NET2013で 数値と英文字を区別したい
□投稿者/ 大谷刑部 (111回)-(2020/10/09(Fri) 11:49:51)
No95918 (魔界の仮面弁士 さん) に返信
> 2020/10/09(Fri) 10:51:49 編集(投稿者)
> ■No95904 (大谷刑部 さん) に返信
> >>アルファベットと数字を区別し、異なる処理をしたいと考えています
> >>確認するのは2文字で空きはふくまれません
> >>英数字は混在しません
>>であれば、IsNumeric関数が一番無難な気がします。
>
> お手軽ではありますが、この手のチェックで IsNumeric を使うのは悪手かも。
>
> https://twitter.com/Benshi_Orator/status/1314366084921716736
> http://www.synapse.ne.jp/anko/VbIsnumeric.html

おっしゃってることはわかりますが全角数字やカンマ編集、小数をTrueとみなすのを悪とするかどうかの問題ですね。
これが画面入力でLeaveイベントでカンマ編集した数値を数値として判定したい場合にはinteger.TryParseだと上記がすべてFalseになっちゃうので使いづらいですね。
私はどちらかというとKeypressとかで全角入力抑止して(場合によっては英字も)、入力チェックは業務的な論理チェックのみに極力する派ですが。
このスレの質問者さんの要件はそういう想定じゃなさそう(カンマや.の入力が考えにくい)だから多分どっちでもよくて、好みの問題ということになるのでしょうけど。


返信 編集キー/


管理者用

- Child Tree -