
>>-DATATYPE--(--string--+---------+--)-------------------------><
'-,--type-'
returns
NUM if you specify only
string and if
string is a valid REXX number that
can be added to 0 without error; returns
CHAR if
string is not a valid number.
If you specify
type, returns
1 if
string matches the type;
otherwise returns
0. If
string is null, the function returns
0 (except when
type is
X, which returns
1 for a null string). The following are valid
types. (Only the capitalized and highlighted letter
is needed; all characters following it are ignored. Note that for
the
hexadecimal option, you must start your string
specifying the name of the option with
x rather than
h.)
- Alphanumeric
- returns 1 if string contains only characters from the ranges a–z, A–Z, and 0–9.
- Binary
- returns 1 if string contains only the characters 0 or 1 or both.
- C
- returns 1 if string is a mixed SBCS/DBCS string.
- Dbcs
- returns 1 if string is a DBCS-only string enclosed by SO and SI bytes.
- Lowercase
- returns 1 if string contains only characters from the range a–z.
- Mixed case
- returns 1 if string contains only characters from the ranges a–z and A–Z.
- Number
- returns 1 if string is a valid REXX number.
- Symbol
- returns 1 if string contains only characters that are valid in REXX symbols. (See Tokens.) Note that both uppercase and lowercase
alphabetics are permitted.
- Uppercase
- returns 1 if string contains only characters from the range A–Z.
- Whole number
- returns 1 if string is a REXX whole number under the current setting of NUMERIC DIGITS.
- heXadecimal
- returns 1 if string contains only characters from the ranges a–f, A–F, 0–9, and blank (as long as blanks appear only between
pairs of hexadecimal characters). Also returns 1 if string is a null string, which is a valid hexadecimal
string.
Here are some examples:
DATATYPE(' 12 ') -> 'NUM'
DATATYPE('') -> 'CHAR'
DATATYPE('123*') -> 'CHAR'
DATATYPE('12.3','N') -> 1
DATATYPE('12.3','W') -> 0
DATATYPE('Fred','M') -> 1
DATATYPE('','M') -> 0
DATATYPE('Fred','L') -> 0
DATATYPE('?20K','s') -> 1
DATATYPE('BCd3','X') -> 1
DATATYPE('BC d3','X') -> 1
Note: The DATATYPE function tests the meaning or type of
characters in a string, independent of the encoding of those characters
(for example, ASCII or EBCDIC).