TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
 Specialized Dev Zones Research Center eBook Library .NET Java C++ Web Dev Architecture Database Security Open Source Enterprise Mobile Special Reports 10-Minute Solutions DevXtra Blogs Slideshow

 Home » Tip Bank » .NET » VB.NET » String Manipulation
Language: VB4,VB5,VB6,VBS
Expertise: Intermediate
Apr 14, 2001

WEBINAR:On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning

IsCharType - Check whether a character is alphabetic, a digit, a space, etc.

``````' Return True if a character belongs to a given catagory
'
' CHARTYPE can be the sum of one or more of the following values
'     1 = Uppercase alpha char [A-Z]
'     2 = Lowercase alpha char [a-z]
'     3 = Alpha char [A-Z,a-z]
'     4 = decimal digit [0-9]
'     7 = alphanumeric char [0-9,A-Z,a-z]
'     8 = decimal digit or decimal separator or sign [0-9,.+-]
'    16 = Hexadecimal digit [0-9,A-F,a-f]
'    32 = white space [Chr(0,8,10,13,32)]
'    64 = punctuation symbols [.,;:?!-'(){}{}]

Function IsCharType(Char As String, ByVal CharType As Integer) As Boolean
Static cTypes(0 To 255) As Integer

' init the array only the first time
If cTypes(0) = 0 Then
Dim i As Integer, v As Variant
' uppercase chars
For i = 65 To 90: cTypes(i) = 1: Next
' lowercase chars
For i = 97 To 122: cTypes(i) = 2: Next
' digits belogs to 3 categories
For i = 40 To 57: cTypes(i) = 4 + 8 + 16: Next
' other chars in decimal numbers
cTypes(Asc("+")) = 8
cTypes(Asc("-")) = 8
cTypes(Asc(Format\$(0.1, "."))) = 8   ' dec separator
' other chars in hex numbers
For Each v In Array(65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102)
cTypes(v) = cTypes(v) Or 16
Next
' white space
For Each v In Array(0, 9, 10, 13, 32)
cTypes(v) = cTypes(v) Or 32
Next
' punctuation symbols
For Each v In Array(46, 44, 59, 58, 63, 33, 45, 39, 40, 41, 123, 125)
cTypes(v) = cTypes(v) Or 64
Next
End If

' returning a value is now very simple
IsCharType = (cTypes(Asc(Char)) And CharType)

End Function
``````
Francesco Balena

 Submit a Tip Browse ".NET" Tips Browse All Tips
Comment and Contribute

(Maximum characters: 1200). You have 1200 characters left.

Thanks for your registration, follow us on our social networks to keep up-to-date