Datatables 带有数值字符串的DataTable列搜索

Datatables 带有数值字符串的DataTable列搜索,datatables,Datatables,我目前有一个DataTable,它有一个列,其中包含一个字符串,例如格式为“14,11,10”的数值。它们最多只能有两位数,但值的数量可能会有所不同。它可以是单个值,如“11”,也可以是字符串“16、14、10、21”中最多四个值 此外,我还有一个匹配处理程序和一个select2框,其中包含所有可能的数字值。用户可以选择匹配“Any”,如果数字字符串至少包含一个选定的数字,则“Any”将匹配每个结果。选择“全部匹配”将只搜索特定的组合,无论数字的顺序如何 匹配任何 全部匹配 NP 基本法 X B

我目前有一个DataTable,它有一个列,其中包含一个字符串,例如格式为“14,11,10”的数值。它们最多只能有两位数,但值的数量可能会有所不同。它可以是单个值,如“11”,也可以是字符串“16、14、10、21”中最多四个值

此外,我还有一个匹配处理程序和一个select2框,其中包含所有可能的数字值。用户可以选择匹配“Any”,如果数字字符串至少包含一个选定的数字,则“Any”将匹配每个结果。选择“全部匹配”将只搜索特定的组合,无论数字的顺序如何

匹配任何 全部匹配 NP 基本法 X BM 总氮 DK 公元 工作 西医 RS M 1T 传统知识 厕所 服务提供商 食品饮料 嗯 DZ 人物配对关系 HT 反恐精英 匹配任何

我有这部分工作除了一个小问题和一位数

输入示例:[1,22,16]

如果$syngery_match.val==any { var any_string=$this.val.toString; var select_snys=任何_字符串。替换“,”,“|”; players\u table.columns synergies\u column.searchselect\u snys,true,false.draw; } 由于1包含在数字字符串中,因此它返回的行包含11、12、13…19、21等值。我如何更改代码,使返回的行必须包含字符串中的确切数字,而不仅仅是数字的一部分

全部匹配

这一部分也在发挥作用。这里唯一的问题是,输入的数字字符串只返回按该顺序排列的数字行

目标行:[13,15,6]

输入示例:[6,13,15] 示例输入2:[15,13,6]

两个示例输入没有返回任何结果,因为与表中的列相比,输入的数字顺序不正确

如果$syngery_match.val==all,则为else { var any_string=$this.val.toString; players\u table.column\u column.searchany\u字符串,true,false.draw; }
希望我能足够清楚地解释我的情况。任何帮助都将不胜感激

您可以使用正则表达式进行精确搜索,以确保搜索结果以值开头并且是完整的值

players_table.column("#synergies_column").search(`^${select_snys}$`, true, false).draw();

至于第二个问题,也许您可以将搜索查询和每个列值拆分为数组,对它们进行排序,然后进行比较。

在类似的情况下,我在表中添加了一个隐藏列,数据采用更便于筛选的格式。在您的例子中,可以对数字进行排序,并使用某种分隔符,例如61315。之后,剩下的就变成了一个JavaScript练习:根据用户的选择,根据需要重新排列搜索数据以匹配此格式,或者匹配隐藏列中的完整字符串,或者匹配子字符串。