现在,我有一个函数将json_encoded PHP数组作为名为“obj”的JavaScript对象。对于用户在输入框中键入的每个键盘操作,它会触发修剪输入的函数,将每个单独的字母插入到数组中,然后for循环连接将与obj中的值匹配的正则表达式字符的组合。
$(document).ready(function(){
var obj = <?php echo json_encode($dname_list); ?>;
$("#input").keyup(function(){
var input_untrimmed = document.getElementById('input').value;
var input_trimmed = input_untrimmed.trim();
var obj_length = obj.length;
for(y=0;y<obj_length;y++){
document.getElementById(y).innerHTML = ' ';
}
var foundit = [];
var num_letters = input_trimmed.replace(/[^A-Z]/gi, "").length;
var letters = [];
for(q=0;q<num_letters;q++){
letters.push("(?=.*");
letters.push(input_trimmed.charAt(q));
letters.push(")");
}
letters.push(".*");
var letters_joined = letters.join("");
alert(letters_joined);
for(x=0;x<obj_length;x++){
/*if(obj[x].indexOf(input) > -1){
foundit.push(obj[x]);
}*/
if(obj[x].match(letters_joined)){
foundit.push(obj[x]);
}
}
var foundit_length = foundit.length;
for(y=0;y<foundit_length;y++){
document.getElementById(y).innerHTML = foundit[y];
}
foundit = [];
letters = [];
});});
对于自动完成功能,我的语法是否准确? (捕捉用户输入的任何字母组合)