日期:2014-05-16 浏览次数:20445 次
/** * 函数名: validateIP * 函数功能: 验证IP的合法性 * 传入参数: what:点分十进制的IP(如:192.168.1.2) * 返回值: true:what为合法IP false: what为非法IP **/ function validateIP(what) { if(what.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) == -1) return false; var fs = 0,ls = 0; var myArray = what.split(/\./); var i; for( i = 0; i < 4; i ++ ) { if( !isNumeric(myArray[i]) ) return false; var t=atoi(myArray[i]); /* 每个域值范围0-255 */ if( (t<0) || (t>255) ) return false; } fs= atoi(myArray[0]); //取第一位进行校验 ls = atoi(myArray[3]); //取最后一位进行校验 /* 主机部分不能全是1和0(第一位不能为255和0),网络部分不能全是0(最后一位不能为0) */ if((fs == 255) || (fs ==0) || (ls == 0)) { return false; } return true; } /** * 函数名: validateMask * 函数功能: 验证子网掩码的合法性 * 传入参数: 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]); /* 每个域值范围0-255 */ if ( ip1<0 || ip1>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位二进制值 * 传入参数: ip:点分十进制的值(0~255),int类型的值, * 主调函数: validateMask * 返回值: ip对应的二进制值(如:传入255,返回11111111;传入1,返回00000001) **/ function _checkIput_fomartIP(ip) { return (ip+256).toString(2).substring(1); //格式化输出(补零) } /** * 函数名: convertIP * 函数功能: 传入参数string nnn.nnn.nnn.nnn 转化为long format IP * 返回值: 转化后的IP **/ function convertIP( what ) { if( !checkIP( what ) ) return 0; var myArray = what.split(/\./); var ip = (256*256*256)*(myArray[0]) + (256*256)*(myArray[1]) + 256*(myArray[2]) + 1*myArray[3]; return ip; } /** * 函数名: checkIP * 函数功能: 验证IP的合法性 * 传入参数: what:点分十进制的IP(如:192.168.1.2) * 返回值: true:what为合法IP false: what为非法IP **/ function checkIP(what) { if(what.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) == -1) return false; var fs = 0,ls = 0; var myArray = what.split(/\./); var i; for( i = 0; i < 4; i ++ ) { if( !isNumeric(myArray[i]) ) return false; var t=atoi(myArray[i]); /* 每个域值范围0-255 */ if( (t<0) || (t>255) ) return false; } return true; } /** * 函数名: splitString * 函数功能: 分割字符串存入数值中 * 传入参数: str要分割的字符串,splitor分割标示符 * 返回值: Array **/ function splitString( str, splitor ) { var a = new Array(); var n = 0, c; a[n]=""; for( var i=0; i < str.length; i ++ ) { c = str.charAt(i); if( c != splitor ) { a[n] +=c; } else { n ++; a[n]=""; } } return a; } /** * 函数名: isNumeric * 函数功能: 检测是否是数字 * 传入参数: 传入strval参数 * 返回值: true:strval为数字 false:strval为非数字 **/ function isNumeric(strval) { var c; for (var i=0; i<strval.length;i++) { c =strval.charAt(i); if (c < "0" || c > "9") { return false; } } return true; } //检测是否大于0 function isMoreThanOne(strval) { var c; for (var i=0; i<strval.length;i++) { c =strval.charAt(i); if (c < "1" || c > "9") { return false; } } return true; } function cvrtStr(src) { var c, i, s = ""; for( i = 0; i < src.length; i ++ ) { c = src.charAt(i); if( (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') ) c = '_'; s += c; } return s; } function trim(s) { if (s == null) { return s; } var i; var beginIndex = 0; var endIndex = s.length - 1; for (