找回密码
 加入
搜索
查看: 1227|回复: 4

请教,如何准确地判断str是否为IP

[复制链接]
发表于 2009-5-28 03:38:40 | 显示全部楼层 |阅读模式
本帖最后由 ceoguang 于 2009-7-2 17:44 编辑

rt.
在其它地方找到一个正则
StringRegExp($ip, '((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)', 2)
但并不能准确无误,高手都来支下招!
发表于 2009-5-28 03:45:15 | 显示全部楼层
Func _StringIsIP($strIP)
        $str = StringSplit($strIP, ".")
        If $str[0] <> 4 Then
                SetError(1)
                Return('')
        ElseIf StringIsDigit($str[1]) <> 1 Or StringIsDigit($str[2]) <> 1 Or _
                        StringIsDigit($str[3]) <> 1 Or StringIsDigit($str[4]) <> 1 Then
                SetError(2)
                Return('')
        ElseIf $str[1] > 255 Or $str[2] > 255 Or $str[3] > 255 Or $str[4] > 255 Then
                SetError(3)
                Return('')
        Else
                Return(Int($str[1]) & "." & Int($str[2]) & "." & Int($str[3]) & "." & Int($str[4]))
        EndIf
EndFunc

评分

参与人数 1金钱 +10 收起 理由
ceoguang + 10

查看全部评分

 楼主| 发表于 2009-5-28 04:02:24 | 显示全部楼层
速度真快,thk
发表于 2009-5-28 13:10:53 | 显示全部楼层
StringRegExp($sIP, "^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$")
我一直用这个
发表于 2009-5-28 15:13:11 | 显示全部楼层
rt.
在其它地方找到一个正则StringRegExp($ip, '((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)', 2)但并不能准确无误,高手都来支下招!
ceoguang 发表于 2009-5-28 03:38

但并不能准确无误??请举例说明
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 08:25 , Processed in 0.081537 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表