dポイントプレゼントキャンペーン実施中!

visual basic 2008に関する質問です。

テキストボックスに入力した文字列の中に、数字の全角文字が
含まれているかどうかをチェックするメソッドはありますか?

下記の内容でビルドすると、エラーとなります。

(ソースより抜粋)---------------------------------------
Dim str As String = TextBox1.Text
Dim chr As Char = str.Chars(0)

If ((chr >= &H8250) And (chr <= &H8258)) Then
Label1.Text = "数字は半角文字で入力して下さい。"
End If
-------------------------------------------------------

(エラー内容)-------------------------------------------
演算子'>='は、型'Char'および'Integer'に対して定義されて
いません。
演算子'<='は、型'Char'および'Integer'に対して定義されて
いません。
-------------------------------------------------------

使用OSは、Windows Vistaです。
質問とあわせて、上記のエラーの対処方法について教えて頂けると
助かります。

A 回答 (1件)

Class Q4534038



Shared Sub Main()

Dim Str As String = "01239"
For i As Integer = 0 to Str.Length - 1
Dim codepoint As Integer = Char.ConvertToUtf32(str,i)
'Integer同士で比較すればよし。16進リテラルは負になることがあるらしいので,10進リテラルで比較。Unicodeのコードポイントで比較した。
If codepoint >= 65296 AndAlso codepoint <= 65305 Then
System.Console.WriteLine("U+FF10-U+FF19の文字が" & i.toString() & "文字目に使われています。:" & codepoint.ToString())
End If
Next

'説明しないけど正規表現使った方が楽かもね(System.Text.RegularExpressions.RegEx)
'必要ならInteger.ParseやDouble.Parseが使えないか検討しよう。
'個人的には「U+FF10-U+FF19」と「U+0030-U+0039以外」を区別すること自体が嫌い
'もっと嫌いなのはこちらの誤りを一切指摘せず,勝手に誤りを訂正して処理を進めるタイプ

System.Console.ReadKey(true)
End Sub

End Class
    • good
    • 0
この回答へのお礼

返事が遅くなり申し訳ございません。

問題は解決しました。
ありがとうございました。

お礼日時:2009/10/08 09:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!