一个简单的判断字符串是否是数字的方法
bat吧
全部回复
仅看楼主
level 3
LQM12587
楼主
萌新发帖,先来个滑稽表示友好
最近在找一个检测字符串是数字的方法,但是网上一找都是些让我一脸蒙蔽的代码qwq,所以自己想了个方法来检测。(大概。。没有被发现过吧)
2018年12月31日 13点12分
1
level 3
LQM12587
楼主
主要思路就是set语句在计算(/a)模式下如果一个数与一个不是数字的变量进行运算时,结果仍是那个数。
例如set /a t=1+%a% ,如果变量%a%是一个可运算的数,那么运算会正常进行,而如果变量%a%不是一个可运算的数,那么t仍然等于1。
2018年12月31日 13点12分
2
level 3
LQM12587
楼主
上个例子
2018年12月31日 13点12分
3
level 13
幻虚道长🍭
用一句findstr正则表达式就可以搞定啦...
你这个限制颇多,数字可能是零啊,还可能超过21亿大
2018年12月31日 14点12分
4
LQM12587
我就是因为看不懂正则嫌它麻烦什么的才用了这个方法啊。。另外我在上面代码里加了个判断0。还有判断大数的你非得这么说我也没办法
,而且数字这么大变量也存储不了
2018年12月31日 15点12分
level 13
幻虚道长🍭
findstr "[^1234567890]" "%变量名%" && (echo 这不是数字) || (echo 这是数字)
2018年12月31日 15点12分
5
level 13
幻虚道长🍭
if %VAR% gtr 0x3FFFFFFF echo 这不是数字
(稳定性未测试)
2018年12月31日 15点12分
6
level 6
开着公交上高速
echo 12345|findstr /v "[^0-9]"&&echo 是纯数字!||echo 不是纯数字!
2019年01月02日 07点01分
8
1