我正在運行一些功能來驗證用戶在表單中輸入的文本是否至少包含一個數字和字母。它似乎沒有工作。由於這兩個功能幾乎相同,我只是張貼之一:'檢查信件'驗證不工作
function hasALetter(textField){
//returns true or false based on whether or not the text field has at least one letter inside it
console.log("Checking for letters...");
var hasLetter = false;
for(var i=0, checkLength=textField.length; i<checkLength; i++){
var letter = textField.substr(i,1);
console.log("letter = " + letter);
if(isNan(letter) == false){
hasLetter = false;
}
}
if(hasLetter == true){
return true;
}
}
日誌(「信=」 +字母)一直沒有出現在我的控制檯。我可能錯過了一些愚蠢的東西,但它似乎並沒有完成這個功能。
供參考,在這裏是我如何調用該函數:
if(pwd.value.length > 9){
var pwdLetter = hasALetter(pwd);
var pwdNumber = hasADigit(pwd);
if(pwdLetter==true){
if(pwdNumber==true){
是的,我知道,這是非常混亂,但我仍然在學習。我確信有更多先進/更清潔的方法來進行這種驗證,但爲了我的學習目的,我現在這樣做。
OMG,這是怎麼回事? 1)使用'substr'獲取單個字符2)isNa * N * 3)if(true)返回true否則返回false是不必要的4)return語句之後的日誌。這可以做很多很多... – Harmen 2011-03-06 17:34:07
@哈爾門>我敢肯定它可以,但因爲我仍然在我的大學課程的第一個Javascript類,'substr'是教授給我們的工作用。另外,我認爲我已經拿出了「回報虛假」的陳述。 :P – GnomeSlice 2011-03-06 17:36:31
@GnomeSlice:textField.charAt(i)在該位置返回一個字母; 'return hasLetter'應該會更好,沒有條件語句;)... – Maxym 2011-03-06 17:38:40