gpt4 book ai didi

jQuery 数据表 fnFilter : find the exact match of a string within a concatenated string

转载 作者:行者123 更新时间:2023-12-01 04:10:20 25 4
gpt4 key购买 nike

我正在使用数据表,并尝试根据隐藏列中是否存在 ID 来过滤我的表。隐藏列包含多个ID,它们由“@”符号分隔,例如@2311@11@3546@(注意:分隔符可以是任何内容;我们只是选择“@”)。

当我将 CategoryId 作为 var (filterValue) 传递给 DataTables fnFilter 时,我得到部分匹配。例如,如果我的categoryId=1,它将与“1”、“11”和“2311”匹配。

我希望categoryId 与列中“@”(由“@”分隔)之间的任何数字完全匹配。我对 fnFilter API 支持的 RegEx 非常不熟悉,我认为这是最好的方法。不幸的是,我实际上没有太多有效的代码可以分享。

这是我迄今为止所拥有的功能:

var oTable = $('#fundTable').dataTable(); //the dataTable object
var filterCol = $("#table th.colCats").index(); //the index of the column to search in
$('.product-filter').click(function() { //click a link to filter the data table
var filterValue = $(this).attr('href').match(/categoryId=([0-9]+)/)[1]; //grab the cat ID from the link
oTable.fnFilter(filterValue, filterCol, true, false); //use fnFilter API to pass in the value, the col index, regex true/false, smart filtering true/false
oTable.fnDraw(); //redraw the table using filter result
return false; //don't activate anchor link
});

这是我正在使用的表格的编辑版本:

<table id="fundTable">
<thead>
<tr role="row">
<th>
Fund
</th>
<th>
Categories
</th class="colCats">
</tr>
</thead>
<tbody>
<tr>
<td>
Fund 1
</td>
<td>
@23@2311@
</td>
</tr>
<tr>
<td>
Fund 2
</td>
<td>
@123@4567@1234@
</td>
</tr>
</tbody>
</table>

我相信 DataTables API 表示您可以使用正则表达式代替值 (filterValue)。我只是不知道如何写。

最佳答案

这非常简单 - 我在一些代码中做了一些非常相似的事情(尽管我在 ID 的两侧使用了“=” - 进行了相应调整):

    oTable.fnFilter('=' + filterValue + '=', filterCol);
oTable.fnDraw();

由于默认过滤会在列中的任何位置查找字符串,因此不需要进一步的正则表达式魔法。

关于jQuery 数据表 fnFilter : find the exact match of a string within a concatenated string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com