2012-04-12 119 views
0

我有沒有驗證的單元格,我的要求是:如何驗證手機號碼

1.filed不得空 2.如果用戶輸入字母值就彈出「字母不準」 3 。現場必須用「+」號開始 4.如果提起值小於13就彈出「請輸入有效的電話沒有」

我使用這個代碼..

function validateForm() 
{ 

    var cell = document.reg_form.cellno.value; 
      if(cell.length==0) 
      { 
       alert("Please enter cell number"); 
       reg_form.cellno.focus(); 
       return false; 
      } 

      if(isNaN(cell)||cell.indexOf(" ")!=-1) 
       { 
       alert("Enter numeric value") 
       return false; 
       } 


      if (cell.charAt(0)!="+") 
       { 
       alert("Cell no should start with +"); 
       return false 
       } 

       if(cell.length < 13) 
       { 
       alert("You have entered wrong number"); 
       reg_form.cellno.focus(); 
       return false; 
     } 
return true; 
} 

一些代碼在這裏不工作 當我輸入數值..它顯示{「單元格號不應該以」+「開頭} 當我把{+}標記它說,請輸入數字值 當我只輸入像{9}這樣的單個數值它向前..雖然這種方式只有2值「+」和「9」..它應該彈出{「你輸入了錯誤的號碼」}

請告訴我我犯了什麼錯誤....

+0

+不是數字,因此isNaN(單元格)將始終返回true。如果(isNaN(cell)|| cell.indexOf(「」)!= - 1)返回false,那麼'if(cell.length> 13)'應該是'if(cell.length!= 13)' – Snuffleupagus 2012-04-12 16:12:13

+0

。所以我可以輸入數值...但我輸入只有2或3個數字,它前進..爲什麼thid不會在'if(cell.length> 13)''返回false ..因爲我的字段值較少比13 – maham 2012-04-12 16:15:21

+0

@ user1090190:當然領先的+給出一個有效的數字。 – Bergi 2012-04-12 16:15:29

回答

0

您與13點返回真細胞長度的比較(一個d警報),如果該值大於13,長我懷疑你想

if(cell.length < 13) 
+0

你是禮拜......我錯誤地進入了'>'號...... – maham 2012-04-12 16:21:33

0

的正則表達式,只有加號和12位匹配:

function validateForm(){ 
    var cell = document.reg_form.cellno; 
    return /^\+\d{12}$/.test(cell.value); 
} 
+0

這將如何處理各種錯誤消息? – 2012-04-12 16:19:07

+0

使用單獨的RegEx,首先對/^\ +進行測試,看它是否以加號開頭,然後使用/^\ + \ d {12} $ /來確保它的+和12位數字。 – 2012-04-12 16:23:11

0
function validateForm() 
{ 
    var cell=document.reg_form.cellno.value; 
    var msg=""; 
    if(cell.length==0) 
    { 
     msg="Please enter cell number"; 
     alert(msg); 
     reg_form.cellno.focus(); 
     return false; 
    } 

    if(isNaN(cell)) msg+="\nEnter numeric value"; 
    if (cell.charAt(0)!="+") msg+="\nCell no should start with +"; 
    if(cell.length != 13) msg+="\nCell number must be within 13 characters"; 
    if(msg) 
    { 
     alert((msg)); 
     reg_form.cellno.focus(); 
     return false; 
    } 
    return true; 
} 

An example is here