IP地址验证无效

时间:2013-02-02 14:37:46

标签: javascript validation ip

我正在尝试使用核心javascript验证IP地址。我想确保每个IP地址段值必须大于100。但它不能正常工作。有关更多详细信息,请参阅以下代码。

function testIP(){
            var ip=document.getElementById("ipaddress").value;
            var first= ip.substring(0,3);
            var second= ip.substring(4,7);
            var third= ip.substring(8,11);
            var fourth= ip.substring(12,15);
            var error=false;
            if(first){

                var ippart1 = 0+first;

                if(first<100){

                }
                else{
                    alert("Please enter a valid ip address.First part of ip address is incorrect"); 
                    error=true;
                }
            }
            else    
                error=true;
            if(second){

                var ippart2 = 0+second;

                if(ippart2<100){

                }
                else{
                    alert("Please enter a valid ip address.Second part of ip address is incorrect");
                    error=true;
                }
            }
            else    
                error=true;
            if(third){

                var ippart3 = 0+third;

                if(ippart3<100){

                }
                else{
                    alert("Please enter a valid ip address.Third part of ip address is incorrect"); 
                    error=true;
                }
            }
            else    
                error=true;
            if(fourth){

                var ippart4 = 0+fourth;
                if(ippart4<100){

                }
                else{
                    alert("Please enter a valid ip address.Forth part of ip address is incorrect");
                    error=true;
                }
            }
            else    
                error=true;
            if(error==true){

                return false;
            }
            else
                return true;

        }

我认为问题在于字符串到整数的转换。我也试过parseInt函数。它也不起作用。请看一下。

2 个答案:

答案 0 :(得分:3)

您应该使用点split()http://www.w3schools.com/jsref/jsref_split.asp)值。然后你可以检查值。

为什么你的方式错了;

考虑我输入了85.15.13.25

变量值:

first: 85.
second: 15.
third: 13.
fourth: 25

所以第一,第二和第三个变量是错误的,它们包含一个点。

答案 1 :(得分:1)

首先,我建议使用此功能检查地址是否有效:

   function validate( value ) {
         RegE = /^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$/  
         if(value.match(RegE))  
            alert('Valid IP');  
         else  
            alert('Invalid IP'); 
      }

然后使用parse int但条件良好(&gt; not&lt;):

if(parseInt(first)>100){

                }

还要考虑重构代码:)