- - PR -
VB2005での全角半角チェック
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-03 21:34
VB2005で開発している初心者です。
テキストボックスに入力された文字列の全角、半角チェックを行いのですが 何かいい処理方法はありますでしょうか? | ||||||||
|
投稿日時: 2006-09-03 21:43
正規表現 Or Shift_JIS にエンコーディングしてバイト数で判断。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-09-03 21:57
shift_jisに変換してチェック方法は
IsWide( string checkStr ) { Encoding sjisEncoding = Encoding.GetEncoding( "Shift_JIS" ); int sjisSize = sjisEncoding.GetByteCount( checkStr ); if ( checkStr.Length * 2 <= sjisSize ) return true; // 全角文字だけ return false; // 全角文字だけでない } こんな感じですね。 全角文字を含む場合とかチェックしたい条件によって、if文は変わりますね。 | ||||||||
|
投稿日時: 2006-09-03 22:00
じゃんぬねっとさん ありがとうございます。 UTF8のGetByteCountよりバイト数を取得し、テキストボックスの文字数を比較して 同じでなければ半角文字例でないという判断をすることにしました。 | ||||||||
|
投稿日時: 2006-09-03 22:48
Σ(;゚Д゚) U、UTF8!? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-09-03 23:23
あれ?!もしかして間違ってましたか・・・? System.Text.Encoding.UTF8.GetByteCount(TextBox.Text) でバイト数を取得するようにしたのですが、、、 まずいですか? | ||||||||
|
投稿日時: 2006-09-03 23:35
(゚Д゚) マズー。
この場合、「'15' と出力されなければ意味がない」 と思わなかったのでしょうか? それとも、評価もしないで解決にしてしまおうとしたのでしょうか? # というより、当初から Shift_JIS という単語が出てきていますし... # にーさんの投稿に至っては、まさに '解' そのものだと思いますけど... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-09-04 00:18
じゃんぬねっとさん
にーさん こんばんは。 ご回答ありがとうございました。 確かに、バイト数のチェックもせずに解決したものだと思い込んでいました。 ”あああああ12345”を試したら確かに15ではなく20を取得しておりました。 SJISに変換してから判断するように対応を行いたいと思います。 お手数お掛け致しました。 |
1