nikbobo 发表于 2013-8-19 11:23:23

「已解决」AutoIt3 如何检测 输入(版本号)是否正确?

本帖最后由 nikbobo 于 2013-8-20 10:33 编辑

AutoIt3 如何检测 输入(版本号)是否正确?
格式:X.X.X.X(四个数字,中间以点分隔)
特殊:不允许在非零数字前面有0。
例子:(1 True,0 False)
1)1.0.0.0 Return 1
2)1.0.7.307 Return 1
3)1.2.4.3 Return 1
4)0.0.0.0 Return 0
5)0.1.0.0 Return 0
6)0.0.1.0 Return 0
7)0.0.0.1 Return 0

user3000 发表于 2013-8-19 12:36:07

本帖最后由 user3000 于 2013-8-19 12:37 编辑

回复 1# nikbobo If StringRegExp($sVersion, '^\.\d\.\d\.\d$') Then
        Return True
Else
        Return False
EndIf

nikbobo 发表于 2013-8-19 16:19:31

回复 2# user3000

10.9.9.9 Return 0
我需要的是 Return 1

user3000 发表于 2013-8-19 17:42:58

回复 3# nikbobo


    看来你完全不懂正则呀.
If StringRegExp($sVersion, '^\d*\.\d+\.\d+\.\d+$') Then
      Return True
Else
      Return False
EndIf

nikbobo 发表于 2013-8-19 21:35:34

回复nikbobo


    看来你完全不懂正则呀.
user3000 发表于 2013-8-19 17:42 http://www.autoitx.com/images/common/back.gif


    没路子学。

貌似还是不对。Func _GetLatestVersion($File, $Cloud, $Id)
        Local $Version = FileGetVersion($File)
        ;Local $Latest = $Cloud & "/?id=" & $Id & "&page=latest"
        ;MsgBox(0, "DeBug", $Latest);DeBug
        ;If InetGetSize($Latest) > 0 Then
                Local $t_Version = "4.0.0.0"
                ;MsgBox(0, "DeBug", $t_Version);DeBug
                If StringRegExp($t_Version, '\d*\.\d+\.\d+\.\d+$', 0) Then
                        MsgBox(0, "DeBug", 1);DeBug
                        $Version = $t_Version
                EndIf
        ;EndIf
        Return $Version
EndFunc   ;==>_GetLatestVersion

user3000 发表于 2013-8-19 22:31:35

回复 5# nikbobo


    不明白"貌似还是不对", 难道不能验证"4.0.0.0"?
    可以的. 2楼的,只能验证各一位数字,4楼的则是1位或多位了

fhqbbfcu2050 发表于 2013-8-20 01:48:56

我也不懂正则,都不知道怎么回事

nikbobo 发表于 2013-8-20 10:32:54

回复 6# user3000


    没事了,我犯了个错误,与这个无关

35598253 发表于 2013-11-25 14:08:48

下载看看看!!!!!!!
页: [1]
查看完整版本: 「已解决」AutoIt3 如何检测 输入(版本号)是否正确?