function ac(str){
//alert('1')
if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.((\d{1,3}|\*))$/.test(str)==true)
{
//window.alert('??的IP地址格式');
//return;
}else{
  window.alert('??的IP地址格式');
  return;
}if((RegExp.$1<1 ||RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254) || (RegExp.$4 != '*' && (RegExp.$4<0||RegExp.$4>254)) )
{
window.alert('??的IP地址');
return;
//}}
alert("ok")
}
ac('192.3.3.*')
ac('192.3.3.1')
ac('192.3.3.333')

解决方案 »

  1.   

    验证IP地址尽量不要用正则.function checkIP(ipstr)
    {
        var flag = true;
        var arr = ipstr.split(".");
        if(arr.length!=4)return false;
        for(var i=0;i<arr.length;i++)
        {
            if(!isNaN(arr[i]))
            {
                if(i==3 && arr[i]=="*")break;
                flag = false;
                break;
            }
            else
            {
                if(parseInt(arr[i])>255 || parseInt(arr[i])<0)
                {
                    flag = false;
                    break;
                }
            }
        }
        return flag;
    }
      

  2.   

    <script language="JavaScript">
    <!--
    /*
    函数名: chkIP
    功  能: 校验IP地址是否合法,并检查IP地址类型.
    参  数: ###.###.###.### 格式的IP字符串
    返回值: 整数,意义见注释
    日  期: 2006-7-19
    作  者: 梅雪香(meixx)
    */
    function chkIP(ipStr){
    //参数格式校验 成功继续,失败返回-1
    ipStr = ipStr.replace(/\s/g,"");
    var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
    if(reg.test(ipStr) == false){
    return -1;
    }
    //ip地址合法性校验 成功继续 ,失败返回-2
    var arr = ipStr.split(".");
    for(var i=0;i<4;i++){
    arr[i] = parseInt(arr[i],10);
    if(parseInt(arr[i],10) > 255)
    return -2;
    }
    var ip = arr.join(".");
    //返回IP地址的类型 包括:
    //异常:0 A类:1 B类:2 C类:3 D类:4 E类:5 A类私有:6 B类私有:7 C类私有:8 本机IP:9 广播地址:10
    //A类子网掩码:11 B类子网掩码:12 C类子网掩码:13
    var retVal = 0;
    var n = arr[0]; if(ip == "255.255.255.255") retVal = 10;
    else if(ip == "255.255.255.0" ) retVal = 13;
    else if(ip == "255.255.0.0") retVal = 12;
    else if(ip == "255.0.0.0") retVal = 11;
    else if(ip == "0.0.0.0" || ip == "127.0.0.1") retVal = 9;
    else if(n <= 126) retVal = (n == 10 ? 6 : 1);
    else if(n <= 191) retVal = (n == 172 ? 7 : 2);
    else if(n <= 223) retVal = (n == 192 ? 8 : 3);
    else if(n <= 239) retVal = 4;
    else if(n <= 255) retVal = 5;
    else ;
    return retVal;
    }
    document.write(chkIP("11.65.96.1") + "<br>");
    document.write(chkIP("130.65.96.1") + "<br>");
    document.write(chkIP("210.65.96.1") + "<br>");
    document.write(chkIP("234.65.96.1") + "<br>");
    document.write(chkIP("251.65.96.1") + "<br>");
    document.write(chkIP("10.65.96.1") + "<br>");
    document.write(chkIP("172.65.96.1") + "<br>");
    document.write(chkIP("192.65.96.1") + "<br>");
    document.write(chkIP("0.0.0.0") + "<br>");
    document.write(chkIP("127.0.0.1") + "<br>");
    document.write(chkIP("255.255.255.255") + "<br>");
    document.write(chkIP("255.0.0.0") + "<br>");
    document.write(chkIP("255.255.0.0") + "<br>");
    document.write(chkIP("255.255.255.0") + "<br>");
    document.write(chkIP("255.255.256.0") + "<br>");
    document.write(chkIP("255.sd5.256.0") + "<br>");
    //-->
    </script>
      

  3.   

    HTTP://www.ebigear.com/Fund/PlayNews.php?NewsID=29964&ID=285885