通过点进行分割。
或取由右向左去字符串str不等于1 就可以了。

解决方案 »

  1.   

    利用正则表达式分解和转换IP地址: 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: function IP2V(ip) 

    re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式 
    if(re.test(ip)) 

    return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 

    else 

    throw new Error("Not a valid IP address!") 

    } 不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: var ip="10.100.20.168" 
    ip=ip.split(".") 
    alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
      

  2.   

    function isIPAdress(str)
    {
    return /^([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/.test(str);
    }
      

  3.   

    /^([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/
      

  4.   

    <script>
    function ch(str)
    {
    var re=/^(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)$/;
    if(!re.test(str))return false;
    var chc=[];
    chc[0]=str.replace(re,'$1');
    chc[1]=str.replace(re,'$2');
    chc[2]=str.replace(re,'$3');
    chc[3]=str.replace(re,'$4');
    for(var i=2;i>=0;i--)
     if(chc[i]=="*")
     for(var j=3;j>i;j--)
       if(chc[j]!='*')return false;
    return true;
    }
    alert(ch("192.168.*.1"));
    </script>
      

  5.   

    /(?:22[0-3]|2[01][0-9]|1\d{2}|[1-9]\d|[1-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d|[0-9])){3}/
      

  6.   

    (?:22[0-3]|2[01][0-9]|1\d{2}|[1-9]\d|[1-9])匹配1-223
    22[0-3]匹配220-223
    2[01][0-9]匹配200-219
    1\d{2}匹配100-199
    [1-9]\d匹配10-99
    [1-9]匹配1-9
    用或则匹配1-223
    (?:\.(?:25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d|[0-9])){3}匹配三组.0-.255
    原则同上
    25[0-5]匹配250-255
    2[0-4][0-9]匹配200-249
    1\d{2}匹配100-199
    [1-9]\d匹配10-99
    [0-9]匹配0-9
    用或匹配0-255
    \.匹配.
    (?:y)表示匹配y但是不保存(没有?一般用于保存)
      

  7.   

    再次压缩如下
    /(?:[1-9]\d?|1\d{2}|22[0-3]|2[01]\d)(?:\.(?:\d\d?|1\d{2}|2[0-4]\d|25[0-5])){3}/
    (?:[1-9]\d?|1\d{2}|22[0-3]|2[01]\d)匹配1-223
    [1-9]\d?匹配1-99
    1\d{2}匹配100-199
    22[0-3]匹配220-223
    2[01]\d匹配200-219
    (?:\d\d?|1\d{2}|2[0-4]\d|25[0-5])匹配0-255
    \d\d?匹配0-99
    1\d{2}匹配100-199
    2[0-4]\d匹配200-249
    25[0-5]匹配250-255