function isIP(ip_str) {
ipArray = ip_str.split("."); if(ipArray.length == 4) {
for(var i=0; i<4; i++) {
if(isInt(ipArray[i])) {
octetInt = parseInt(ipArray[i]);
if(octetInt < 0 || octetInt > 255) {
return false;
}
} else {
return false;
}
}
if(ipArray[0]=="0") {
return false;
}
} else {
return false;
}
return true;
}

解决方案 »

  1.   

    function isIP(sIP) {
        sIP = String(sIP).replace(/^\s+|\s+$/g,"") // trim
    // remove non numeric characters and dot
        // sIP = String(sIP).replace(/([^0-9.]|)/g,"") 
        var result = sIP.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
        return (result && 
                result.length == 5 && 
                isFF(result[1]) && 
                isFF(result[2]) && 
                isFF(result[3]) &&  
                isFF(result[4]));
    }
    function isFF(x) {
        return (!isNaN(x) && x >= 0 && x <= 255)
    }
      

  2.   

    <script>
    function check(ip)
    {
      if(!/^(\d{1,3}\.){3}(\d{1,3})$/.test(ip))
        {
          return 'ip地址由数字和.组成,每段最多3位.请重新输入';
        }
      var arr=ip.split(".");
      for(var i=0;i<arr.length;i++)
       {
          if(parseInt(arr[i])>255)
            {
               return '第'+(i+1).toString()+'个8位不能大于255';
            }
       }  return 'ip正确'
    }alert(check('1.2.0.2536'));
    </script>
      

  3.   

    str=document.RegExpDemo.txtIP.value;
    if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(str)==false)
    {
     window.alert('错误的IP地址格式');
     document.RegExpDemo.txtIP.select();
     document.RegExpDemo.txtIP.focus();
     return;
    }
    if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
    {
     window.alert('错误的IP地址');
     document.RegExpDemo.txtIP.select();
     document.RegExpDemo.txtIP.focus();
     return;
    }
    //剔除 如  010.020.020.03 前面 的0 
    var str=str.replace(/0(\d)/g,"$1");
    str=str.replace(/0(\d)/g,"$1");
    window.alert(str);
      

  4.   

    to 楼上:
    10.0.0.0
    1.1.0.0
    0.0.0.0
    ..........
    也是ip地址,只是他们代表一个子网而已
      

  5.   

    to redtank2005(菜鸟):你的2段代码我为什么都运行不了?to magie16036936(magie) :谢谢,你的我可以用了,因为想用到的地方不仅是IP地址,还有子网掩码与默认网关,因此我把你的都改成<0和>255 了,最后想到的去除0的思路好好!你真细心!!to  vivianfdlpw() :抱歉你的我也运行不了我只知道用下面这个方式来运行:
    <html>
    <head>
    <script language=javascript>
    function check()
    {.....}
    </script>
    </head>
    <body>
    <form name=xform>
    <input type=text name=aaa id=ip>
    <input type=button value="submit" onclick="check()">
    </form>
    </body>
    </html>用这种格式你们两个的我都运行不了,麻烦再给我说一下哈*^_^*
      

  6.   

    再贴一个 
    function verifyDottedIP(cntrl,errmsg1,errmsg2,flag) 
    {
        ip_str = cntrl.value;
    //alert(ip_str);

    if (ip_str == "") {
     if (flag == 1){
    //window.alert("Port can not be empty.");
    window.alert(errmsg1);
    cntrl.select();
         return false;
    }
               return true;
    }else{
    var val = 0;
    var i = index = 0;

    while (index < ip_str.lastIndexOf(".")) {
    k = index;
    index = ip_str.indexOf(".", index);
    val = toNumber(ip_str, k, index); if (val < 0 || val > 255)
    break;
    i++; index++;
    } if (i == 3) {
    if (index == ip_str.length) {
    i = 2;
    } else {
    val = toNumber(ip_str,index, ip_str.length);
    if (val < 0 || val > 255) i = 2;
    }
    } if (i != 3) {
    alert(errmsg2);
    cntrl.select();
    return false;
    }
    }
    return true;
    }
      

  7.   

    Mac地址
    function ismacok(theString,errmsg)
    {
        var i;
    var buf = theString.value; if (buf.length != 17) {
    //window.alert(buf + "  is not a valid MAC");
    window.alert(buf + " "+errmsg);
    return false;
    }
      for(i=0;i<buf.length;i+=3){
    if((!isxdigit(buf.charAt(i)))||(!isxdigit(buf.charAt(i+1)))){
    // window.alert(buf +"  is not a valid MAC");
    window.alert(buf + " "+errmsg);
    return false;
    }
    }  for(i=2;i<buf.length;i+=3){
    if((buf.charAt(i)!=':') && (buf.charAt(i)!='-')){ 
    // window.alert(buf +"  is not a valid MAC");
    window.alert(buf + " "+errmsg);
    return false;
    }
    }
      return true;
    }
      

  8.   

    掩码
    function verifyNetmask(cntrl,errmsg) {
       val = new Array();
       var i = index =longMaskVal= 0;
       ip_str = cntrl.value;
      
       while (index < ip_str.lastIndexOf(".")) {
         k = index;
       index = ip_str.indexOf(".", index);
       val[i] = toNumber(ip_str, k, index);
      
       if (val[i] < 0 || val[i] > 255){
                              break;
                                 }
                        i++; index++;
         }    
       if (i == 3) { if (ip_str.length > index){
                      val[i] = toNumber(ip_str,index, ip_str.length);
                if (val[i] < 0 || val[i] > 255) 
                                            i = 2
                       else { val[0]=val[0]<<24;
                                     val[1]=val[1]<<16;     
                                     val[2]=val[2]<<8;
                                     longMaskVal=val[0]+val[1]+val[2]+val[3];
                                     if ((longMaskVal&(~longMaskVal+1))==(~longMaskVal+1))
                                         return (longMaskVal);  
                                     else 
                                         i=2;
                                      }
                                 }
                                 else
                                   i=2;
                             }
         if (i != 3) {
                           alertWinMask(cntrl.value, errmsg);
                            //cntrl.value = cntrl.defaultValue;
    cntrl.select();
    return 999999;
       }
      return true;
      }
      

  9.   

    楼上的老大。你用的不是javascript吧?我怎么看不懂5555555(但感觉这个帖子可以好好收藏。)麻烦再赐教
      

  10.   

    function isIp(str){
      var sa=str.split(".");
      if(sa.length!=4) return false;
      for(var i=0;i<sa.length;i++){
        if(!(/^(\d)+$/g).test(sa[i]) || (sa[i]<0) || (sa[i]>255)) return false;
      }
      return true;
    }
    alert(isIp("192.168.0.211"))