我在字符串比較函數中遇到了一些困難。我有一個有keyup事件的文本框。當按下某個鍵時,它會調用一個函數來比較文本框中的內容和值列表。我希望能夠允許用戶在框中鍵入一個單詞,並從列表中刪除與已鍵入的內容不兼容的選項。舉例來說,如果我有這個名單:在鍵入時比較字符串
jay
jason
jamie
jamu
jenny
sara
,並允許用戶鍵入:
'j' --> sara should be eleminated as a choice
'ja' --> sara and jenny should be eliminated
'jam' --> only jamie and jamu should be left
'jamu' --> should only leave jamu
我的代碼似乎只能通過文字和不累計,以給它的信。有沒有人有任何建議,以更好的方式來檢查字符串?
感謝
function filterByName(e){
var key = window.event ? e.keyCode : e.which;
var keychar = String.fromCharCode(key);
fullString=fullString + keychar
..... some other stuff
//iterate over list
var ul = document.getElementById("friendUl");
var liNodes = ul.getElementsByTagName("li");
var nodeLength = liNodes.length
for (i=0;i<=nodeLength-1;i++){
var getFNames= document.getElementsByName('fNames').item(i)
var getLNames = document.getElementsByName('lNames').item(i)
var fullNames = getFNames + " " + getLNames
for (j=0;j<=fullString.length-1;j++){
if(fullString.charAt(j)== fullNames.charAt(j)){
alert(fullNames)
}
}
}
}
'
結合使用'Array.filter'和'String.indexOf'來完成它。看到我的答案。 – 2012-02-18 18:47:14