如何在自动完成JavaScript函数中使用正则表达式?

时间:2016-02-18 14:42:45

标签: javascript php jquery regex

现在,我有一个函数将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 = [];
        });});

对于自动完成功能,我的语法是否准确? (捕捉用户输入的任何字母组合)

0 个答案:

没有答案