我正在尝试使用正则表达式实现Datatables搜索。如果我搜索"lu..a"(返回Lucia、Luzia、LUZIA等),它可以正常工作,但是如果我尝试搜索"concei..o"(寻找Conceição、conceicao等),就无法正常工作。
问题出在数据库中的带重音字符,例如"ç"或"ã"(pt_BR)。
我已经尝试了去重音插件,但它产生了相反的效果(https://datatables.net/plug-ins/filtering/type-based/accent-neutralise)。
在表格初始化时有很多选项,我这里省略了一些(按钮、翻译等),但一个重要的细节是该表格正在从服务器端检索数据。
以下是搜索代码:
来源:https://datatables.net/examples/api/multi_filter.html
问题出在数据库中的带重音字符,例如"ç"或"ã"(pt_BR)。
我已经尝试了去重音插件,但它产生了相反的效果(https://datatables.net/plug-ins/filtering/type-based/accent-neutralise)。
在表格初始化时有很多选项,我这里省略了一些(按钮、翻译等),但一个重要的细节是该表格正在从服务器端检索数据。
以下是搜索代码:
来源:https://datatables.net/examples/api/multi_filter.html
// Setup - add a text input to each footer cell
$('.exportTable tfoot th.select-filter').each(function() {
var title = $(this).text();
$(this).html('<div class="form-group form-float" style="width: 100%">' +
'<div class="form-line">' +
'<input class="form-control" placeholder="' + title + '" title="Filtrar ' + title + '" type="text" style="width: 100%">' +
'</div>' +
'</div>');
});
table = $('.exportTable').DataTable();
// Apply the search
table.columns().every(function() {
var that = this;
$('input', this.footer()).on('keyup change', function() {
if (that.search() !== this.value) {
that
.search(this.value, true, false, true)
.draw();
}
});
});