aux649350702 发表于 2010-11-19 22:23:50

如何判断一个字符串是否为ip地址?(已接决)

本帖最后由 aux649350702 于 2010-11-20 14:21 编辑

如何判断一个字符串是否为ip地址?

binghc 发表于 2010-11-19 23:44:38

当然正则,可以论坛搜一下

xlcwxl 发表于 2010-11-20 07:59:26

本帖最后由 xlcwxl 于 2010-11-20 08:02 编辑

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 178, 99, 192, 124)
$Input1 = GUICtrlCreateInput("", 32, 32, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 80, 56, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        If _isIP(GUICtrlRead($Input1)) Then
                                MsgBox(0, "", "是合法IP地址")
                        Else
                                MsgBox(0, "", "不是合法IP地址")
                        EndIf

        EndSwitch
WEnd

Func _isIP($ip)
        Return 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}|)$")
EndFunc   ;==>_isIP

justwait 发表于 2010-11-20 08:28:08

^(|\d|1\d\d|2\d|25)\.((|\d|1\d\d|2\d|25)\.){2}(|\d|1\d\d|2\d|25)$

kxing 发表于 2010-11-20 09:01:52

$ip='192.168.1.100'
if stringregexp($ip,'^(|\d|1\d\d|2\d|25)\.((|\d|1\d\d|2\d|25)\.){2}(|\d|1\d\d|2\d|25)$') then msgbox(0,'ip','true')

binghc 发表于 2010-11-20 10:11:50

本帖最后由 binghc 于 2010-11-20 10:30 编辑

楼上的表达式都好长啊,可以想想怎么简化一下

aux649350702 发表于 2010-11-20 14:19:52

呵呵,小弟不会正则,谢谢各位指教!!!

binghc 发表于 2010-11-20 15:22:42

如果只是单单判断一个字符串是不是ip地址而不是从目标字符串中分析出ip地址,大可以不用正则

用字符串截取就行了,或者用StringSplit()分割再判断,也很方便

haodd 发表于 2010-11-20 16:09:40

拜托注意一下 标题的错别字

netegg 发表于 2010-11-21 00:02:11

#include<array.au3>
$a=StringSplit($string, '.', 2)
_ArraySort($a)
If UBound($a) = 4 Then
        If $a<1 Or $a>255 Then
                MsgBox('','','error')
        Else
                MsgBox('','','right')
        EndIf
Else
        MsgBox('','','error')
EndIf
页: [1]
查看完整版本: 如何判断一个字符串是否为ip地址?(已接决)