2012-04-14 118 views
-2

在第一個塊中,我確保密碼不包含「密碼」。它完美的作品。Javascript - 使用indexOf搜索字符串

var element=document.getElementById('password'); 
    if (element.value.toLowerCase().indexOf('password') > -1){ //returns 0 or more if present 
    alert('Password may not contain the word `password`.'); 
    element.focus(); 
    return false; 
    } 

在第二個塊中,我檢查密碼不包含名字,它不起作用,我做錯了什麼?

//stop password of firstname 
    var element=document.getElementById('password'); 
    var firstname=document.getElementById('firstname'); 
    if (element.value.toLowerCase().indexOf(firstname.value) > -1){ //returns 0 or more if present 
    alert('Password may not contain the firstname.'); 
    element.focus(); 
    return false; 
    } 
+6

您是否忘記了firstname.value上的.toLowerCase(),然後由於套管的不同而導致測試失敗? – AHM 2012-04-14 22:37:05

+0

是的,這是問題,謝謝 – davidjhp 2012-04-14 22:41:15

+0

-2爲盲?真??我在20多年的職業生涯中犯過同樣的錯誤。有時候所需要的只是第二套眼睛。現在我超過40歲了,我需要第二組眼睛的原因不同...... :) – 2012-04-14 23:42:31

回答

3

你忘了小寫的第一個名字:

// stop password of firstname 
var element = document.getElementById('password'); 
var firstname = document.getElementById('firstname'); 
if(element.value.toLowerCase().indexOf(firstname.value.toLowerCase()) > -1) { //returns 0 or more if present 
    alert('Password may not contain the firstname.'); 
    element.focus(); 
    return false; 
}
+3

D'oh !! ........... – 2012-04-14 22:40:46

0

如果(。element.value.toLowerCase()的indexOf(firstname.value toLowerCase())> -1)

-1

也許這不是問題,但你可以使用underscore.string做同樣的事情在一個非常容易和表達方式:

_.includes(element.value.toLowerCase(), firstname.value.toLowerCase())