2014-09-26 55 views
0

我正在進行表單驗證,並且我有一套邏輯結構設置和一組驗證函數。一切都在努力達到必須驗證社會安全號碼的最後一組邏輯結構。函數沒有拿起驗證的第二部分

下面是驗證功能

//check if an input field is null 
function checkIsNull(s){ 
    if(s == ''){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

//check if a phone number entered is valid 
function validatePhoneNumber(s){ 
    var str = s; 
    str = str.replace(/[^0-9]/g, ''); 
    if(str.length != 10 || str == ""){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 

//check if something only has numbers in it 
function onlyNumbers(num){ 
    var res = /\D+/g.test(num); 
    return res; 
} 

function validateEmail(s){ 
    var str = s; 
    var res = str.match(/[!#$%&'*+-\/=?^_`{|}~a-zA-Z0-9.]*@\w+\.\w+/g); 
    if(res){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

的電話號碼和社會安全號碼驗證方式不盡相同,但在與社會安全號碼我輸入的字母不拿起輸入字段中的字母。

有關於此的任何想法,還是有人可以指出我在正確的方向嗎?

回答

1

函數onlyNumbers實際上使用'\ D'而不是'\ d','\ D'表示所有非數字的非數字,正如您所想象的那樣。

+0

實際上,否\ D會檢查它是否包含任何不是數字的東西。所以它的工作原理就像是假設的那樣。我解決了這個問題。當迭代.input-group循環時,我需要添加中斷。 – 2014-09-26 18:33:09

+0

函數被稱爲onlyNumber,並且您正在驗證字符串是否爲非數字,這是我的觀點。不管怎麼樣,放置休息並不是一件好事 – 2014-09-26 18:34:36

+0

你的觀點是無效的。正則表達式模式將抓住任何標識,無論它是否是一個字符串。閱讀正則表達式模式以及它們如何處理信息。如果您可以確定一種更好的方式來驗證該信息而不使用中斷,請給我看看。 – 2014-09-26 18:39:19

0

我解決了我自己的問題。發生了什麼事情是,當檢查電話號碼,出生日期和ssn的循環被迭代時,如果最後一項簽出了錯誤類將被刪除。因此,當發現錯誤以保持顯示正確時,我必須在這些循環中添加中斷。