注册 登录
编程论坛 ASP技术论坛

[求助]如何拆分这样的字符串

笨笨林 发布于 2007-11-13 06:41, 1266 次点击
拆分IP字符串,比如说222.23.14.58要把它拆成四段,str1=222 str2=23 str3=14 str4=58
请问如何拆更好,还要防止出错,如222.13.14就可以友好的提示数据错误。
6 回复
#2
永夜的极光2007-11-13 08:12

网上搜索split和ubound这两个函数的用法,相信你就可以自己实现这个功能了,试试看

#3
hmhz2007-11-13 08:26
[CODE]<%
ip="222.23.14.58"
ipp=split(ip,".")
str1=ipp(0)
str2=ipp(1)
str3=ipp(2)
str4=ipp(3)
%>
<%=str1%>.<%=str2%>.<%=str3%>.<%=str4%>[/CODE]
#4
yms1232007-11-13 08:38
Function IsIPAddress(IPStr)
Dim IPAry
IPAry=Split(IPStr,".")
IF IsArray(IPAry)=False Then
IsIPAddress="非法IP地址字符串"
Else
IF UBound(IPAry)<>4 Then
IsIPAddress="非法IP地址字符串"
End IF
End IF
IsIPAddress=""
End Function
用法
Dim tStr
tStr="192.168.0.1"
IF IsIPAddress(tStr)<>"" Then
Response.Write IsIPAddress(tStr)
End IF
#5
笨笨林2007-11-13 09:54

多谢,不过楼上的有个地方错了。
IF UBound(IPAry)<>4 Then
那里应该是3。

#6
笨笨林2007-11-13 09:57
经过调试,最终代码如下,也欢迎指教。
ipp=split(sip,".")
if IsArray(ipp)=False Then
%><tr><td>非法IP地址字符串 错误1</td></tr><%
else
%><%=UBound(ipp)%><%
if UBound(ipp)<>3 Then
%><tr><td>非法IP地址字符串 长度不对</td></tr><%
else
str1=ipp(0)
str2=ipp(1)
str3=ipp(2)
str4=ipp(3)
if isNumeric(str1)=0 Or isNumeric(str2)=0 Or isNumeric(str3)=0 Or isNumeric(str4)=0 Then
%><tr><td>非法IP地址字符串 IP全是由数字和小数点组成的</td></tr><%
else
if str1>255 or str2>255 or str3>255 or str4>255 or str1<0 or str2<0 or str3<0 or str4<0 then
%><tr><td>非法IP地址字符串 IP为0-255中的数值,你的输入超出了范围!</td></tr><%
end if
end if
end if
end if
#7
pc0072009-09-19 10:08
三楼的方法很管用,我也遇到类似问题,
谢谢!
1