0

わかりました。過去2時間、電話番号のスクリプトを検証しようとしましたが、なぜこれが機能しないのか理解できないようです。最大長は12で、そのためのifステートメントがすでにあります。これで機能します。

形式は次のようにする必要があります:nnn-nnn-nnnn

         var tele = document.pizza.field03;  //store phone number
         var fone = tele.value               //store values of variable tele in fone
         var acode = "";                    
         var midnum = "";                    
         var lasnum = "";                    
         var hyphen = "";                  
         var hyphen2 ="";                        

   acode=fone.substr(0,3);
   hyphen=fone.substr(3,4);
   midnum=fone.substr(4,7);
   hyphen2=fone.substr(7,8);
   lasnum=fone.substr(8);

       else if (isNaN(acode) )
         {
           errMessages += "<li>Please use integer numbers only</li>\n";
           errMessages += "<li>ex: 1 2 3 4 5 </li>\n";
         }

       else if (isNaN(midnum) )
         {
           errMessages += "<li>Please use integer numbers only</li>\n";
           errMessages += "<li>ex: 1 2 3 4 5 </li>\n";
         }

       else if (isNaN(lasnum) )
         {
           errMessages += "<li>Please use integer numbers only</li>\n";
           errMessages += "<li>ex: 1 2 3 4 5 </li>\n";
         }

編集*

else if (hyphen.indexOf('-') ==-1)                  //checking for hyphen
     {
       errMessages += "<li>You need a hyphen after the area code</li>\n"
       errMessages += "<li>ex: areacode-nnn-nnn</li>\n"
     }

   else if (hyphen2.indexOf('-') ==-1)
     {
       errMessages += "<li>You need a hyphen after the middle 3 digits</li>\n";
       errMessages += "<li>ex: 416-mid-1234</li>\n";
     }

数字と文字のどちらを使用しても、エラーウィンドウが表示され続けます。

可能であれば正規表現を使用せずにこれを行う方法を学びたいです。ありがとうございました。

4

2 に答える 2

2
acode=fone.substr(0,3);
hyphen=fone.substr(3,4);
midnum=fone.substr(4,7);
hyphen2=fone.substr(7,8);
lasnum=fone.substr(8);

2番目のパラメーターは、「終了位置」ではなく、取得される文字列の長さを指定します。参考文献を参照

変数は、値'nnn'、'-nnn'、'nnn-nnnn'、'-nnnn'、および'nnnn'で出力されます。

acode=fone.substr(0,3);
hyphen=fone.substr(3,1);
midnum=fone.substr(4,3);
hyphen2=fone.substr(7,1);
lasnum=fone.substr(8);
于 2012-04-07T22:38:06.990 に答える
1

の構文はsubstrですstring.substr(start,length)

しかし、あなたはそれを。で呼んでいるようですstring.substr(start,end)

詳細はこちらをご覧ください

于 2012-04-07T22:42:00.040 に答える