2014-01-14 33 views
0

嗨,大家好,我在這裏遇到了問題,我如何驗證密碼框,必須包含至少一個數字字符。我不允許使用正則表達式/正則表達式。我試圖通過網絡搜索,但解決方案總是以正則表達式結束。文本框必須包含數字或字母驗證的JavaScript沒有正則表達式

這裏是我的代碼,我嘗試

function validateIn() 
{ 
var pass=document.getElementById('password').value; 
for(var i=0;i<pass.length;i++) 
{ 
    if(isNaN(pass.charAt(i))==false) 
    { 
     return true; 
     break; 
    } 
    else 
    { 
     return false; 
    } 
} 
} 

我已經嘗試過的方式,但我失敗了,u能幫助我的傢伙?由於之前

+0

你爲什麼不被允許使用正則表達式?這是asinine。 –

+0

耶我的老師說這是教我們如何考慮基本的問題解決,後來他說,教我們使用正則表達式 – user2978983

+0

所有你需要修復你的代碼是將'return false'移到循環之外。在檢查字符串中的所有字符並找不到數字後,您應該只返回false *。 –

回答

1

一個可行的方法:

function validateIn() { 
    var pass = document.getElementById('password').value, 
     p = pass.length, 
     ch = ''; 

    while (p--) { 
    ch = pass.charAt(p); 
    if (ch >= '0' && ch <= '9') { 
     return true; // we have found a digit here 
    } 
    } 
    return false; // the loop is done, yet we didn't find any digit 
} 

的一點是,你不必return你已經找到了正常字符後(如你基本上是尋找一個單一的數字) - 你只需要繼續檢查。

請注意,我已經沒有isNaN,因爲它有點低效:唯一需要的是範圍檢查。

+0

謝謝你!!!它工作得很好! 你教我如何解決這樣的問題:) – user2978983

+0

你是對的沒有使用isNaN;根據https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN,它也匹配空間,並被認爲是「破損」。 –

相關問題