JQuery datalist匹配以任意顺序输入的多个单词

22 浏览
0 Comments

JQuery datalist匹配以任意顺序输入的多个单词

编辑:我对datalist进行了更多研究,发现它的匹配行为无法自定义。因此,我决定放弃datalist,自己制作下拉列表和自动完成插件。\n我有一个类似这样的输入datalist:\n


    
        

\n目前,如果用户按照datalist选项的顺序输入国家名称,datalist只会显示\"美利坚合众国\",例如United states,states of等。\n我希望即使用户按照非顺序的方式输入名称,datalist也能显示\"美利坚合众国\",例如United America,America States。\n在PHP和MySQL中,我可以将输入拆分成每个单词的数组,并使用LIKE %..%子句来查询我想要的结果。\n如何在Jquery或Javascript中实现这一点?

0
0 Comments

JQuery datalist match input with multiple words in any order的问题是如何在输入框中使用正则表达式匹配多个单词的任意顺序,并将匹配的结果显示出来。

问题的原因是datalist的匹配行为不可自定义。因此,需要采取其他方法来实现这个功能。有人建议使用正则表达式来检查输入框的值,并与选项进行比较,如果匹配则显示,否则隐藏。

以下是一些关于如何使用正则表达式的建议和代码示例。其中,一个人提供了一个简单的正则表达式:/^(united|states|of|america)\s?(united|states|of|america)?\s?(united|states|of|america)?\s?(united|states|of|america)?/i,可以匹配1个、2个、3个或4个单词的任意顺序。但是这个正则表达式没有考虑拼写错误或重复的情况。

另一个人给出了如何实现的建议和代码示例,使用jQuery的change事件监听输入框的变化,并使用正则表达式进行匹配。在匹配成功时,可以执行相应的操作。

然而,经过进一步研究,发现datalist的匹配行为不能自定义。因此,可以考虑放弃使用datalist,而是自己制作下拉列表和自动补全插件。这样可以更加灵活地控制匹配的行为。

最后,有人建议不要自己编写正则表达式,而是使用现有的搜索插件。在给出的链接中,有一些简单易用的搜索插件可以选择。

通过以上内容的整理,我们可以得出JQuery datalist match input with multiple words in any order问题的原因是datalist的匹配行为不可自定义,解决方法是使用正则表达式或自制下拉列表和自动补全插件。

0