如何判断用户输入的IP地址是否合法

alj 2001-01-19 09:08:00
我写了这样一个函数,但是在使用时总是说有问题,麻烦那位看一看,多谢!
<head>
<script language="JavaScript">
<!--
function IPChk(IPStr)
{
var numArray=new Array();
numArray=IPStr.split(".");
if(numArray.length==4) //只有含有3个点的IP地址才合法
{
var num;
for(var i=0;i<=3;i++)
{
num=parseInt(numArray[i]);
if(num<=0 || num>=255)
{ return 0; }
}
return 1;
}
return 0;
}

function check()
{
var IPStr=document.frm.IPAddr.Value
var IsIPAddr=IPChk(IPStr)
if(IsIpAddr==0)
{
window.alert("请输入合法地址!");return false;
}
return true;
}
//-->
</script>
</head>

<body>
<form name="frm" onSubmit="return check()">
<input type=text name="IPAddr">
<input type="Submit" value="ok">
</form>
</body>
...全文
261 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ether 2001-01-20
  • 打赏
  • 举报
回复
<head>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="JavaScript">

function ToIntDefault(NumStr, DefaultVal) // 类似parseInt,但对“12b”、“abc”之类的非法输入返回DefaultVal
{
var num=0;
num=parseInt(NumStr);
if (isNaN(num))
return DefaultVal;
if (num.toString(10)==NumStr)
return num
else
return DefaultVal;
}

function IPChk(IPStr)
{
var num=0;
var numArray=new Array();
numArray=IPStr.split(".");
if(numArray.length==4) //只有含有3个点的IP地址才合法
{
for(var i=0;i<=3;i++)
{
num=ToIntDefault(numArray[i], -1);
if(num<=0 || num>=255)
{ return 0; }
}
return 1;
}
return 0;
}

function check()
{
var IsIPAddr=IPChk(document.myForm.firstName.value);
if(IsIPAddr==0)
{
window.alert("请输入合法地址!");
return;
};
alert('ok'); return;
document.myForm.submit;
}


</script>
</head>

<body>



<FORM NAME="myForm" action="http://www.abc.com/aaa.dll">
<INPUT TYPE="text" NAME="firstName" SIZE=20>
<INPUT TYPE="button" VALUE="Check" NAME="SubmitButton" onClick="check()">
</FORM>

</body>

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧