2007/05/18(Fri) 13:21:28 編集(投稿者)
正規表現を使わないで一文字ずつチェックする方法にしてみた。
文字コードを直に書いてあるのであまり好ましくなさそう。
(Char.IsXXXXってのに最適なものがないようだったし)
Private Shared Function IsXXXXString(ByVal s As String) As Boolean
For Each c As Char In s.ToCharArray
Select Case System.Convert.ToUInt16(c)
' U+0000〜U+007F Basic Latin
' U+30A0〜U+30FF Katakana
' U+FF66〜U+FF9F Halfwidth Katakana
Case &H0000 To &H007F, _
&H30A0 To &H30FF, _
&HFF66 To &HFF9F
Return False
End Select
Next
Return True
End Function
' 使用時
If IsXXXXString(Me.TextBox1.Text) Then
MessageBox.Show("○")
Else
MessageBox.Show("×")
End If
※適当な名前をつけるの面倒だったのでIsXXXXStringになっています。