- EnableExplicit
- ; ****************************************************************************
- ; ****************************************************************************
- Procedure IsNumeric_1(svalue.s)
- ;
- ;
- ;
- Define.i i, ival
- Define.b bresult = #True
- ;
- svalue = Trim(svalue)
- For i=1 To Len(svalue)
- ival = Asc(Mid(svalue,i,1))
- If ival <> 45 AND ival <> 46 AND (ival < 48 OR ival > 57)
- bresult = #False
- Break
- EndIf
- Next i
- ProcedureReturn bresult
- EndProcedure
- Debug IsNumeric_1("12")
- Debug IsNumeric_1("-12.0345")
- Debug IsNumeric_1("-A12.0345")
- Debug IsNumeric_1("ABC")
- Debug IsNumeric_1("-ABC")
- Debug IsNumeric_1("-AB.C")
- Debug #Null$
- ; ****************************************************************************
- ; ****************************************************************************
- Procedure IsNumeric_2(svalue.s)
- ;
- ;
- ;
- Protected.s Pattern = "^[-+]?[0-9]*\.?[0-9]+$"
- Protected.i Result, RegEx = CreateRegularExpression(#PB_Any, Pattern)
- ;
- If RegEx
- Result = MatchRegularExpression(RegEx, svalue)
- FreeRegularExpression(RegEx)
- ;
- ProcedureReturn Result
- EndIf
-
- EndProcedure
- Debug IsNumeric_2("12")
- Debug IsNumeric_2("-12.0345")
- Debug IsNumeric_2("-A12.0345")
- Debug IsNumeric_2("ABC")
- Debug IsNumeric_2("-ABC")
- Debug IsNumeric_2("-AB.C")