function isIPAddr(value) {
  var value;
  if(!value) return false;
  var varr = value.split(".");
  if(!varr || !varr.length || varr.length < 4) return false;
  for(var k=0; k<4; k++)
    if(!isNaN(varr[k]) || parseInt(varr[k]) <0 || parseInt(varr[k]) > 255)
      return false;
  if(parseInt(varr[0]) == 0 || parseInt(varr[3]) == 0) return false;
  return true;
}

解决方案 »

  1.   

    function checkIPAddress (ipAddressString) 
    {
      var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
      var passedTest = false;
       
        if (reSpaceCheck.test(ipAddressString)) 
        {
       ipAddressString.match(reSpaceCheck);
    if (RegExp.$1 <= 255 && RegExp.$1 >= 0 
        && RegExp.$2 <= 255 && RegExp.$2 >= 0 
    && RegExp.$3 <= 255 && RegExp.$3 >= 0 
    && RegExp.$4 <= 255 && RegExp.$4 >= 0)
    {
    passedTest = true;
    }
    }
      
       if (!passedTest) 
       {  
      return false;
       }
       
      return true;
    }
      

  2.   

    函数是黑箱操作,只要表述清楚输入输出即可。用正则是最好的。至于理解,我想首先应该是针对正则表达式的理解和熟练程度而言。若你能很好了解正则的规则。它一定是最好理解的。因为它已经对你的匹配规则作了一个定义。function ipCheck(ipValue)
    {//检测ipValue是否为有效的IP值
    var reg = /^\d{1,3}(\.\d{1,3}){3}$/;
    if (reg.test(ipValue))
    {
    var ary = ipValue.split('.');
    for(key in ary)
    {
    if (parseInt(ary[key]) > 255 )
    return false;
    }
    return true;
    }else
    return false;
    }