hnfeng 发表于 2024-5-21 17:00:22

[已解决]如何判断变量是不是正整数?

本帖最后由 hnfeng 于 2024-5-21 17:19 编辑

想判断 一个输入的变量 ($CmdLine)是不是正整数,如果不是(例如:aaa, a1, 1a, -12 .....),就显示提示并退出


就是:只能输入 1,2,3,4,......这样的,不能是 0,不能含数字之外的字符,不能负数

Floor,Number, IsNumber, Int, String .... 晕了,试验不出来

zghwelcome 发表于 2024-5-21 17:07:30

If Not StringRegExp($CmdLine,'^\d*$') Then exit

hnfeng 发表于 2024-5-21 17:18:42

zghwelcome 发表于 2024-5-21 17:07
If Not StringRegExp($CmdLine,'^\d*$') Then exit

多谢多谢,没想到使用正则解决了

邪恶海盗 发表于 2024-5-21 20:57:30

菜鸡表示:正则究竟是个什么JB玩意?

-------------------------

绿色风 发表于 2024-5-21 20:59:29

$CmdLine=$CmdLine+0

rally 发表于 2024-5-21 21:53:44

绿色风 发表于 2024-5-21 20:59
$CmdLine=$CmdLine+0

风老大这个式子怎么理解啊?

绿色风 发表于 2024-5-21 22:20:19

rally 发表于 2024-5-21 21:53
风老大这个式子怎么理解啊?


$str = "11"
$str = 11
$str = "aa"

$str = $str + 0



你可以分别试下看下效果

rally 发表于 2024-5-21 22:47:49

绿色风 发表于 2024-5-21 22:20
你可以分别试下看下效果

这个如果$str为负数,$str = $str + 0 也成立啊

afan 发表于 2024-5-22 09:06:27

LZ 是要判断,而不是容错(纠错),所以 + 0 这种强行转为数字肯定不适合,如果0本身就有其意义就更不能这么搞了。

绿色风 发表于 2024-5-22 10:13:03

rally 发表于 2024-5-21 21:53
风老大这个式子怎么理解啊?

这只是 字符类数字与 数字 之间的一种转换方法而以。

绿色风 发表于 2024-5-22 10:14:17

afan 发表于 2024-5-22 09:06
LZ 是要判断,而不是容错(纠错),所以 + 0 这种强行转为数字肯定不适合,如果0本身就有其意义就更不能这么 ...

if $CmdLine+0 > 0 then 不就得的了

afan 发表于 2024-5-22 10:53:55

绿色风 发表于 2024-5-22 10:14
if $CmdLine+0 > 0 then 不就得的了

我认为不行,你觉得行就行吧
页: [1]
查看完整版本: [已解决]如何判断变量是不是正整数?