0

コア 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ました。また、機能していません。ぜひご覧ください。

4

2 に答える 2

3

ドットを使用して値をsplit()( http://www.w3schools.com/jsref/jsref_split.asp )する必要があります。そして、値を確認できます。

あなたのやり方が間違っているのはなぜですか。

85.15.13.25 と入力したとします。

変数値:

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

したがって、1 番目、2 番目、3 番目の変数は間違っています。ドットが含まれています。

于 2013-02-02T14:46:41.273 に答える
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 を使用しますが、適切な条件 (> ではなく <) を使用します。

if(parseInt(first)>100){

                }

コードのリファクタリングも検討してください:)

于 2013-02-02T15:03:07.637 に答える