检测输入的IP是否合法
Dim $reIP$inputIP = InputBox("请输入IP", "请输入有效的IP地址", "")
CheckIP($inputIP)
If $reIP =1 Then
MsgBox(0,"结果", $inputIP & "是一个有效的IP地址!")
Else
MsgBox(0,"结果", $inputIP & "不是一个有效的IP地址!")
EndIf
Func CheckIP($IP)
$reIP =StringRegExp($IP,"^(25|2|{1}{2}|{1}{1}|)\.(25|2|{1}{2}|{1}{1}||0)\.(25|2|{1}{2}|{1}{1}||0)\.(25|2|{1}{2}|{1}{1}|)$",0)
Return $reIP
EndFunc 非常感谢。学习了。 学习收藏了。。 正则表达式啊。。。。好长的说 回复 1# yEn
灰常感谢! 此贴如此强,不得不顶啊 ((2\d|25|?\d\d?)\.){3}(2\d|25|?\d\d?) 本帖最后由 xlcwxl 于 2010-8-19 21:50 编辑
回复 7# afan Dim $reIP
$inputIP = InputBox("请输入IP", "请输入有效的IP地址", "")
CheckIP($inputIP)
If $reIP =1 Then
MsgBox(0,"结果", $inputIP & "是一个有效的IP地址!")
Else
MsgBox(0,"结果", $inputIP & "不是一个有效的IP地址!")
EndIf
Func CheckIP($IP)
$reIP =StringRegExp($IP,"((2\d|25|?\d\d?)\.){3}(2\d|25|?\d\d?)",0)
Return $reIP
EndFuncafan的正则更厉害 回复 8# xlcwxl
那个是现成的… 我复制过来滴 http://deerchao.net/tutorials/regex/regex.htm 回复 7# afan
回复 7# afan
正则有问题,,超255后还是显示有效。。 正则处理IP并不明智,数学方法应该少写些代码Dim $reIP
$inputIP = InputBox("请输入IP", "请输入有效的IP地址", "")
CheckIP($inputIP)
If $reIP =1 Then
MsgBox(0,"结果", $inputIP & "是一个有效的IP地址!")
Else
MsgBox(0,"结果", $inputIP & "不是一个有效的IP地址!")
EndIf
Func CheckIP($IP)
$IP_array=StringSplit($IP,".")
If $IP_array>255 Or $IP_array>255 Or $IP_array>255 Or $IP_array>255 Then
$reIP=0
Else
$reIP=1
EndIf
Return $reIP
EndFunc 本帖最后由 xlcwxl 于 2010-8-22 07:55 编辑
回复 12# 3mile
我输入中文和字母,提示如下:
回复 13# xlcwxl
对于中文和字母的问题。稍作修改即可。Dim $reIP
$inputIP = InputBox("请输入IP", "请输入有效的IP地址", "")
CheckIP($inputIP)
If $reIP = 1 Then
MsgBox(0, "结果", $inputIP & "是一个有效的IP地址!")
Else
MsgBox(0, "结果", $inputIP & "不是一个有效的IP地址!")
EndIf
Func CheckIP($IP)
$IP_array = StringSplit($IP, ".")
For $i = 1 To 4
If Not IsNumber($IP_array[$i]) Then
$reIP = 0
Return $reIP
EndIf
Next
If $IP_array > 255 Or $IP_array > 255 Or $IP_array > 255 Or $IP_array > 255 Then
$reIP = 0
Else
$reIP = 1
EndIf
Return $reIP
EndFunc ;==>CheckIP 本帖最后由 飞龙三少 于 2010-8-22 09:32 编辑
回复 14# 3mile
在你基础上稍作修改,增加对输入的IP字符串 分割后得到的数组维度的判断,检测输入的IP是否完整如127.0.0.1共4部分。Dim $reIP
$inputIP = InputBox("请输入IP", "请输入有效的IP地址", "")
CheckIP($inputIP)
If $reIP =1 Then
MsgBox(0,"结果", $inputIP & "是一个有效的IP地址!")
Else
MsgBox(0,"结果", $inputIP & "不是一个有效的IP地址!")
EndIf
Func CheckIP($IP)
$IP_array=StringSplit($IP, ".",1)
If Not @error And $IP_array = 4 Then
For $i = 1 To $IP_array
If StringIsInt($IP_array[$i]) = 0 Or $IP_array[$i] < 0 Or $IP_array[$i] > 255 Then
$reIP=0
ExitLoop
Else
$reIP=1
EndIf
Next
Else
$reIP=0
EndIf
Return $reIP
EndFunc
页:
[1]
2