- ベストアンサー
日本語かどうかの判定について
VB2005 の初心者です。 テキストボックスに入力された文字が日本語(全角も半角も含めて)だったらエラーとしてメッセージボックスを表示させたいのですが、やり方が分かりません。 半角の数字、アルファベットはエラーとしませんが、半角の日本語、全角文字は全てエラーとしたいです。 ヒントになるようなことでも良いですが、できれば実際のコーディングもご教授いただければ幸いです。 皆様の知恵をお借りできればと思います。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
正規表現で不許可の文字を探すというのは? 半角の数字、アルファベットはOKなら、0x00~0x7FがOKですね。 なので、それ以外を見つけるとNGということでしょう。 Function CheckJapanese(ByVal CheckWord As String) As Boolean Dim R As New Regex("[^\x00-\x7F]") Dim M As Match = R.Match(CheckWord) CheckJapanese = M.Success End Function 0x00~0x7F以外の文字を見つけるとTrueが返ります。
その他の回答 (2)
- K-Sogacchi
- ベストアンサー率53% (50/93)
半角記号とかが どうなるかは書かれてませんが、それは置いといて… 以下のキーワードについて、ヘルプ等で調べてみてください。 Text.SubString メソッド、または Mid関数 For...Next Asc関数 ASCII文字コード ヒントとしては、「Text.SubString(またはMid)で1文字ずつ検査」です。 もうちょっとスマートなやり方もあるかもですが、思いつきません。 あとは… Select Case xxx Case xxx To xxx End Select …の形式の条件分岐あたりも知っておくと得かも。 (If文でも判定できなくは ないけど) だいたい、このぐらいかな? いきなり あまり細かい事書くと能力がつかないので、とりあえず このぐらいにしておきます。
お礼
早速の回答ありがとうございます。 今回はnda23さんに教えていただいたやり方で実現しましたが、 考え方など、勉強になりました。 ありがとうございました。
- inu2
- ベストアンサー率33% (1229/3720)
日本語だったらエラー 全角だったらエラー と、エラーのパターンが多岐にわたる場合。 半角アルファベット、半角数字 以外は エラー と頭のなかで 逆の考えていくとすんなり組めますよ。 入力された文字のすべてが、半角英数 のみだった場合 許可 それ以外はエラー のように組んでください。
お礼
早速の回答ありがとうございます。 考え方が誤っていたのですね。 教えていただいたやり方で検討してみます。 ありがとうございました。
お礼
早速の回答ありがとうございます。 System.Text.RegularExpressions というのを初めて知りました。 教えていただいたやり方で、 チェックを実現することができました。 とても勉強になりました。 本当にありがとうございました。