Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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数据列表以任意顺序将输入与多个单词匹配_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery数据列表以任意顺序将输入与多个单词匹配

Javascript JQuery数据列表以任意顺序将输入与多个单词匹配,javascript,jquery,html,Javascript,Jquery,Html,编辑:我对数据列表做了更多的研究,似乎它的匹配行为是不可定制的。我决定放弃数据列表,制作自己的下拉列表和自动完成插件 我有一个这样的输入数据列表 <input list="Country" /> <datalist id="Country"> <option value="United States of America"/> </datalist> 目前,如果用户按照数据列表选项的顺序键入国家名称,则数据

编辑:我对数据列表做了更多的研究,似乎它的匹配行为是不可定制的。我决定放弃数据列表,制作自己的下拉列表和自动完成插件

我有一个这样的输入数据列表

<input list="Country" />
    <datalist id="Country">
        <option value="United States of America"/>  
    </datalist>

目前,如果用户按照数据列表选项的顺序键入国家名称,则数据列表将仅显示“美利坚合众国”,即美国、美利坚合众国等

我希望数据列表显示“美利坚合众国”,即使用户键入的名称不符合顺序,即美利坚合众国,美利坚合众国

在PHP和MySQL中,我可以将输入拆分为每个单词的数组,并使用LIKE%..%子句查询我想要的内容

如何使用Jquery或Javascript实现这一点?

使用regex进行检查。 Var userTypeRegex=newregex(input.val().split(“”).join(‘|’)

然后用上面的正则表达式检查每个选项值,如果test和show else hide,则使用正则表达式进行检查。 Var userTypeRegex=newregex(input.val().split(“”).join(‘|’)


然后用上面的正则表达式检查每个选项值,if test And show else hide

这对您有帮助:您可以查看@gaetanoM我读过,但问题和答案是针对另一个已“修复”的问题的通过chrome。@Mojtaba我找不到将正则表达式实现到输入和数据列表中的方法。这对您有帮助:您可以看看@gaetanoM,我读过它,但问题和答案是针对另一个“已修复”的问题的通过chrome。@Mojtaba我找不到将正则表达式实现到输入和数据列表中的方法。我找不到将正则表达式实现到输入和数据列表中的方法。另外,这里有一些非常业余的正则表达式用于此场景。它可以按任意顺序匹配1、2、3或全部4个单词。一个缺点是我没有实现检查拼写错误或重复的方法。但你看:
/^(美利坚合众国)-(美利坚合众国)→美利坚合众国)→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→我看你在实施上有困难。下面是我如何实现它的:`jQuery(function($){$('#input_field_其中_user_输入_search_query').on('change',function(){if($(this).val().match(/^(united | states | of | america))s?(united | states | of | america)?\s‌​?(美利坚合众国)‌​梅里卡)?\s?(美国)‌​tates | of | america)?/i)){//当此用户搜索匹配时,在此处执行所需操作}}});编辑:在执行代码时,您很可能需要循环使用选项(目前只有1个),以将匹配项与保存该值的选项相关联。@AaronEveleth您好,谢谢您的帮助。我对datalist做了更多的研究,似乎它的匹配行为是不可定制的。我决定放弃数据列表,制作自己的下拉列表和自动完成插件。@J13t0u很高兴你能弄明白。有时重新开始是必要的。我的建议是,如果不一定要写正则表达式,就不要写自己的正则表达式。有几个搜索插件。第二个和第三个似乎很容易在这个列表中实现。我找不到将正则表达式实现到input和datalist中的方法。另外,这里有一些非常业余的正则表达式。它可以按任意顺序匹配1、2、3或全部4个单词。一个缺点是我没有实现检查拼写错误或重复的方法。但你看:
/^(美利坚合众国)-(美利坚合众国)→美利坚合众国)→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→美利坚合众国→我看你在实施上有困难。下面是我如何实现它的:`jQuery(function($){$('#input_field_其中_user_输入_search_query').on('change',function(){if($(this).val().match(/^(united | states | of | america))s?(united | states | of | america)?\s‌​?(美利坚合众国)‌​梅里卡)?\s?(美国)‌​tates | of | america)?/i)){//当此用户搜索匹配时,在此处执行所需操作}}});编辑:在执行代码时,您很可能需要循环使用选项(目前只有1个),以将匹配项与保存该值的选项相关联。@AaronEveleth您好,谢谢您的帮助。我对datalist做了更多的研究,似乎它的匹配行为是不可定制的。我决定放弃数据列表,制作自己的下拉列表和自动完成插件。@J13t0u很高兴你能弄明白。有时重新开始是必要的。我的建议是,如果不一定要写正则表达式,就不要写自己的正则表达式。有几个搜索插件。在这个列表中,第二个和第三个似乎相当容易实现。