用连字符验证Javascript中的电话号码

时间:2012-04-07 22:33:23

标签: javascript

ok所以我试图验证过去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";
     }

会发生什么是我是否使用数字或字母,它会不断弹出错误窗口。

我想学习如何在不使用RegEx的情况下执行此操作。 谢谢。

2 个答案:

答案 0 :(得分: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);

第二个参数指定所采用字符串的长度,而不是“结束位置”。 (See reference

你的变量带有值'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);

答案 1 :(得分:1)

substr的语法是string.substr(start,length)

但是,您似乎是使用string.substr(start,end)调用它。

有关详细信息,请参阅here