Logo

Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.

ISALPHA(), ISDIGIT(), ISLOWER(), ISUPPER()

These functions all tell you about the state of a character. ISALPHA() returns .T. if the character is alphabetic while ISDIGIT() returns .T. if it’s a numeric digit. ISLOWER() and ISUPPER() check the case of a character and return .F. if it’s the wrong case or not alphabetic.

Usage

lIsItAlphabetic = ISALPHA( cString )
lIsItADigit = ISDIGIT( cString )
lIsItLower = ISLOWER( cString )
lIsItUpper = ISUPPER( cString )

Although you can pass an entire character string to these functions, they only look at the first character, so:

?ISDIGIT("1abc")

returns .T., as does:

?ISUPPER("Smith")

Use these functions in parsing and in validating user input. For example, you might check all the characters of a supposedly numeric string before applying VAL() to it. However, if you need all uppercase or all lowercase letters for an operation, it’s easier to just apply UPPER() or LOWER().

Note that Windows and its ANSI font standard has a different interpretation of which characters constitute the alphabet from DOS and its ASCII basis. ISALPHA() is true for many of the high-order characters (like ƒ, Š, and Ñ), which Windows/ANSI maps to non-English alphabets, while FoxPro/DOS reported .F. for anything other than A through Z, uppercase and lowercase.

Example

? ISALPHA("\WINWORD")   && returns .F.
? ISDIGIT("Age 7")      && returns .F.
? ISLOWER("lower case") && returns .T.
? ISUPPER("\WINWORD")   && returns .F.

See Also

Lower(), Upper()