dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: Intermediate
Apr 14, 2001

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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
 
Comment and Contribute

 

 

 

 

 


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

 

 

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