PB中如何校验IP地址格式?
PB中如何校验IP地址格式? PB match
[解决办法]
写了个函数给你,要自己多想想咯
global function boolean f_ip (string as_ip);//as_ip 存储ip的字符串
string ls_item[]
long i , j, ll_len, ll_pos
ll_len = len(as_ip)
for i=1 to ll_len
if mid(as_ip,i,1) = '.' then
j ++
ll_pos ++
ls_item[j] = mid(as_ip,ll_pos,i - 1)
ll_pos = i
else
//若包含有非数字的字符,则不是正确的IP地址
if not(Asc(mid(as_ip,i,1)) >= 48 and Asc(mid(as_ip,i,1)) <= 57) then
return false
end if
end if
if i > 15 then
return false
end if
next
if ll_len > ll_pos then
ls_item[j+1] = mid(as_ip,ll_pos+1,ll_len - ll_pos)
end if
//不含有三个.的字符串不是正确的IP地址
if j <> 3 then
return false
end if
//不含有四组数字的字符串不是正确的ip地址
if upperbound(ls_item[]) <> 4 then
return false
end if
//逐个判断数字组,是否是在0至255之间
if long(ls_item[1]) + long(ls_item[2]) + long(ls_item[3]) + long(ls_item[4]) <0 then
return false
end if
if long(ls_item[1]) > 255 or long(ls_item[2]) > 255 or long(ls_item[3]) > 255 or long(ls_item[4]) > 254 then
return false
end if
return true
end function