function accents_supr(data){
return ! data ?
'' :
typeof data === 'string' ?
data
.replace( /\n/g, ' ' )
.replace( /[áàäâ]/g, 'a' )
.replace( /[éèëê]/g, 'e' )
.replace( /[íìïî]/g, 'i' )
.replace( /[óòöô]/g, 'o' )
.replace( /[úùüû]/g, 'u' ):
data;
jQuery.extend( jQuery.fn.dataTableExt.oSort,
{
"spanish-string-asc" : function (s1, s2) { return s1.localeCompare(s2); },
"spanish-string-desc" : function (s1, s2) { return s2.localeCompare(s1); }
});
jQuery.fn.DataTable.ext.type.search['spanish-string'] = function ( data ) {
return accents_supr(data);
}
}
Y luego en el datatables.js hay que modificar:
function nb(a) {
var b = !this.value ? "" : this.value;
b=accents_supr(b);
....
g(a.nTable).on("search.dt.DT", function (b, c) {
// LSG
totalReg = a.aoData.length;
for (k=0; k < totalReg; k++) {
a.aoData[k]._sFilterRow = a.aoData[k]._sFilterRow.replace("á", "a");
a.aoData[k]._sFilterRow = a.aoData[k]._sFilterRow.replace("é", "e");
a.aoData[k]._sFilterRow = a.aoData[k]._sFilterRow.replace("í", "i");
a.aoData[k]._sFilterRow = a.aoData[k]._sFilterRow.replace("ó", "o");
a.aoData[k]._sFilterRow = a.aoData[k]._sFilterRow.replace("ú", "u");
// console.log(show_props(a.aoData[k], "o"));
}
// FIN LSG
....
}
Muchas gracias. Había probado por lo menos 5 variantes distintas de esto mísmo. El único que anduvo fue este.
ResponderEliminar