判断一个字符串是否纯数字,有无更优雅的算法?
遇一个函数,需将传入的字符串参数逐字拆解,判断是否纯十进制数字。比方说:
"1021"、"238A"、"1314X520"……
最粗鲁的算法,无非For...Endfor循环,逐字判断是否数字。
人活世上,可不能要求那么低!——不能光吃饱了完事,还应有所追求吧。
除了眼前的苟且,我感觉吧,还应远眺一眼远方。
你说是吧?
那么,有没有更优雅一点点、让人眼前一亮、会心一笑的算法?
想了一个,自我感觉挺讨巧的,只可惜无法处理"0023"、"001"这种带前导“0”的情况:
*----------------------------------
* 拆解一个字符串参数,逐字判断是否纯十进制数字?
*----------------------------------
function isAllDigit
lpara lcString
if empty(lcString)
return .F.
endif
lnLen = len(lcString)-1
lnDigit = val(lcString)
if lnDigit > 10 ^ lnLen
return .T.
else
return .F.
endif
*----------------------------------
敢问诸侠,砖我是抛出来了,有无玉可捡?