Data table with accents - STRING data
Neutralize special characters with datatables search and sorting of string data
HTML
<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.css">
<table id="example">
<thead>
<tr>
<th>Name</th>
<th>Country</th>
<th>Company</th>
</tr>
</thead>
<tbody>
<tr>
<td>Andrew Smith</td>
<td>Canada</td>
<td>Acme</td>
</tr>
<tr>
<td>Benjamin TÜV</td>
<td>Austria</td>
<td>Legoland</td>
</tr>
<tr>
<td>Carl TUV</td>
<td>Switzerland</td>
<td>Swatchmania</td>
</tr>
<tr>
<td><a href="javascript:void(0)">Donald Tüv</a></td>
<td>Germany</td>
<td>Smobymade</td>
</tr>
<tr>
<td>Edward tuv</td>
<td>Belgium</td>
<td>Godiva</td>
</tr>
<tr>
<td>Frank Jones</td>
<td>Canada</td>
<td>Pricemaker</td>
</tr>
</tbody>
</table>
JavaScript
jQuery.fn.dataTable.ext.type.search.string = function(data) {
return !data ?
'' :
typeof data === 'string' ?
data
.replace(/έ/g, 'ε')
.replace(/ύ/g, 'υ')
.replace(/ό/g, 'ο')
.replace(/ώ/g, 'ω')
.replace(/ά/g, 'α')
.replace(/ί/g, 'ι')
.replace(/ή/g, 'η')
.replace(/\n/g, ' ')
.replace(/[áÁ]/g, 'a')
.replace(/[éÉ]/g, 'e')
.replace(/[íÍ]/g, 'i')
.replace(/[óÓ]/g, 'o')
.replace(/[úÚ]/g, 'u')
.replace(/[üÜ]/g, 'u')
.replace(/ê/g, 'e')
.replace(/î/g, 'i')
.replace(/ô/g, 'o')
.replace(/è/g, 'e')
.replace(/ï/g, 'i')
.replace(/ã/g, 'a')
.replace(/õ/g, 'o')
.replace(/ç/g, 'c')
.replace(/ì/g, 'i') :
data;
};
$(document).ready(function() {
var oTable = $('#example').DataTable({
"columnDefs": [{
"type": "string",
"targets": '_all'
}]
});
// Remove accented character from search input as well
$('#example_filter input').keyup(function() {
oTable
.search(
jQuery.fn.dataTable.ext.type.search.string(this.value)
)
.draw();
});
});