function isNumeric returns logical ( input string as character ):
define variable x as decimal.
assign
x = decimal( string )
no-error.
return not error-status:error.
end.
display isNumeric( "1234" ).
pause.
display isNumeric( "xyz" ).
pause.
display isNumeric( "abc123" ).
pause.
define variable i as integer no-undo.
define variable s as character no-undo.
s = "abc7xyz".
do i = 0 to 9:
if index( s, chr( i + 48 )) > 0 then
do:
message "Yes!".
leave.
end.
end.
function hasNumber returns logical ( input instring as character ):
define variable i as integer.
do i = 0 to 9:
if index(instring,string(i)) > 0
then return true.
end.
return false.
end.
display hasNumber( "1234" ).
pause.
display hasNumber( "xyz" ).
pause.
display hasNumber( "abc123" ).
pause.
DEFINE VARIABLE lvNums AS CHARACTER NO-UNDO INITIAL "0,1,2,3,4,5,6,7,8,9".
FUNCTION HasNumber RETURNS LOGICAL
(INPUT ipChar AS CHARACTER):
DEFINE VARIABLE lvFirstChar AS CHARACTER NO-UNDO.
DEFINE VARIABLE lvRest AS CHARACTER NO-UNDO.
ASSIGN
lvFirstChar = SUBSTRING(ipChar,1,1)
lvRest = SUBSTRING(ipChar,2).
IF LOOKUP(lvFirstChar,lvNums) GT 1 THEN
RETURN TRUE.
IF lvRest EQ "" THEN
RETURN FALSE.
RETURN HasNumber(lvRest).
END FUNCTION.
MESSAGE HasNumber( "1234" )
VIEW-AS ALERT-BOX INFO BUTTONS OK.
MESSAGE HasNumber( "xyz" )
VIEW-AS ALERT-BOX INFO BUTTONS OK.
MESSAGE HasNumber( "abc123" )
VIEW-AS ALERT-BOX INFO BUTTONS OK.