文字列比較関数でいくつかの問題があります。私は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'を組み合わせて使用します。私の答えを見てください。 –