Sit*_*thu 2 string foxpro function digits visual-foxpro
我正在寻找一个类似于 PHP 函数is_numeric()的 Visual FoxPro 函数。
我找到了这个,但我不能使用,VARTYPE或者TYPE因为变量总是一个只包含数字的字符串。
我找到了ISDIGIT()函数,但手册说它只检查第一个字符。
确定指定字符表达式的最左边的字符是否为数字(0 到 9)。
Run Code Online (Sandbox Code Playgroud)ISDIGIT(cExpression)参数
cExpression指定 ISDIGIT( ) 测试的字符表达式。cExpression 中第一个字符之后的任何字符都将被忽略。
我会使用正则表达式对象创建我自己的函数 VBScript.RegExp
FUNCTION isNumeric( tcValue )
LOCAL oRE
oRE = CreateObject("VBScript.RegExp")
oRE.Pattern = '^[0-9]+$'
RETURN oRE.test( tcValue )
ENDFUNC
? isNumeric( '123' )
Run Code Online (Sandbox Code Playgroud)
但是,FoxPro 是否为此提供了任何功能?
我只是在俯视吗?
也相同ISALHPA()which 确定字符表达式中最左边的字符是否是字母。我想检查变量是否只包含字母。
您可以像这样创建自己的函数。
FUNCTION IsAllDigits
LPARAMETERS tcSearched, tcOptionalSearch
* tcSearched = the string of characters to test.
* tcOptionalSearch = optional, additional characters to allow.
LOCAL lcSearch
m.lcSearch = "01234567989" + IIF(VARTYPE(m.tcOptionalSearch) = "C", m.tcOptionalSearch, "")
LOCAL lcRemaining
m.lcRemaining = CHRTRAN(m.tcSearched, m.lcSearch, "")
RETURN ( LEN(m.lcRemaining) = 0 )
ENDFUNC
Run Code Online (Sandbox Code Playgroud)