Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建更高效的检测方法(jQuery、PHP、Web应用程序)_Javascript_Php_Jquery_Jquery Ui Autocomplete - Fatal编程技术网

Javascript 创建更高效的检测方法(jQuery、PHP、Web应用程序)

Javascript 创建更高效的检测方法(jQuery、PHP、Web应用程序),javascript,php,jquery,jquery-ui-autocomplete,Javascript,Php,Jquery,Jquery Ui Autocomplete,我在inc.php文件中运行了这个检测引擎,该文件在输入字段上使用jQuery检测,并针对用户键入的内容运行正则表达式: .. $trigger_selector = "[name^=trigger-]"; ?> $("<?php echo $trigger_selector; ?>").on("change keyup paste blur", function() { run_macro_detector($(this));

我在inc.php文件中运行了这个检测引擎,该文件在输入字段上使用jQuery检测,并针对用户键入的内容运行正则表达式:

    ..
    $trigger_selector = "[name^=trigger-]";
    ?>

    $("<?php echo $trigger_selector; ?>").on("change keyup paste blur", function() {
        run_macro_detector($(this));
    });

    function run_macro_detector(input) {
        var new_value = input.val();
        var input_id = input[0].id;
        var pattern = /(\$NAME\d+\$)/;
        var pattern_system = /(\$.*)/;

        test = pattern.exec(new_value);
        test_system = pattern_system.exec(new_value);

        if (test != null) {
            // add new_value to name_match_array
        }

        if (test_system != null) {
            // add new_value to macro_match_array
        }

        var match_array= name_match_array.concat(macro_match_array);
        input.autocomplete({ source: match_array });
    }
。。
$trigger_selector=“[name^=trigger-]”;
?>
$(“”)。打开(“更改键控粘贴模糊”,函数(){
运行宏检测器($(this));
});
功能运行宏检测器(输入){
var new_value=input.val();
var input_id=input[0].id;
变量模式=/(\$NAME\d+\$)/;
var模式\u系统=/(\$.*)/;
test=pattern.exec(新的_值);
test\u system=pattern\u system.exec(新值);
如果(测试!=null){
//将新值添加到名称匹配数组
}
if(测试系统!=null){
//将新值添加到宏匹配数组
}
var match_array=name_match_array.concat(宏_match_array);
input.autocomplete({source:match_array});
}
我认为正则表达式在某种程度上限制了我的能力,但我希望听到一些关于如何更快、更少地依赖正则表达式或者是否有更简单的方法来实现这一点的建议。我还修改了大量代码,主要是为了让大家理解我的想法

我遇到的另一个问题是如何让jQueryUIAutoComplete强制只检测“$”字符,而不在下拉列表中将其显示为选项