`

验证子网掩码的合法性

    博客分类:
  • JS
阅读更多

validateMask.js源代码:

===================分隔符===================

/**
* 函数名: validateMask
*   函数功能: 验证子网掩码的合法性
*   函数作者: 236F(fuwei236#gmail.com)
* 传入参数: MaskStr:点分十进制的子网掩码(如:255.255.255.192)
*   主调函数:
* 调用函数: _checkIput_fomartIP(ip)
* 返回值:   true:   MaskStr为合法子网掩码
*      false: MaskStr为非法子网掩码
**/

function validateMask(MaskStr)
{
/* 有效性校验 */
var IPPattern = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
if(!IPPattern.test(MaskStr))return false;

/* 检查域值 */
var IPArray = MaskStr.split(".");
var ip1 = parseInt(IPArray[0]);
var ip2 = parseInt(IPArray[1]);
var ip3 = parseInt(IPArray[2]);
var ip4 = parseInt(IPArray[3]);
if ( ip1<0 || ip1>255 /* 每个域值范围0-255 */
   || ip2<0 || ip2>255
   || ip3<0 || ip3>255
   || ip4<0 || ip4>255 )
{
   return false;
}

/* 检查二进制值是否合法 */
//拼接二进制字符串
var ip_binary = _checkIput_fomartIP(ip1) + _checkIput_fomartIP(ip2) + _checkIput_fomartIP(ip3) + _checkIput_fomartIP(ip4);

if(-1 != ip_binary.indexOf("01"))return false;
return true;
}


/**
* 函数名: _checkIput_fomartIP
*   函数功能: 返回传入参数对应的8位二进制值
*   函数作者: 236F(fuwei236#gmail.com)
* 传入参数: ip:点分十进制的值(0~255),int类型的值,
*   主调函数: validateMask
* 调用函数: 无
* 返回值:   ip对应的二进制值(如:传入255,返回11111111;传入1,返回00000001)
**/
function _checkIput_fomartIP(ip)
{
return (ip+256).toString(2).substring(1); //格式化输出(补零)
}

===================分隔符===================

测试页面test.htm

===================分隔符===================
<html>
<head>
    <title></title>
    <script src="validateMask.js"></script>
    <script>
function test(MaskStr)
{
   alert("IP地址为: "+ MaskStr + " 验证结果:" + validateMask(MaskStr));
}
    </script>
</head>
<body>
<center>
<h1>子网掩码验证
</h1>
<input type="text" name="mask" id="mask" value="">
<input type="button" name="mytest" id="mytest" value="点击验证输入框中的值" onclick="test(mask.value)">
</center>
</body>
</html>

===================分隔符===================

留个记号,写得太复杂了。以后再修改修改,应该可以直接用正则表达式验证完成的。

分享到:
评论
1 楼 vcxiaohei 2011-01-14  
谢谢,很好用!!!

相关推荐

Global site tag (gtag.js) - Google Analytics