javascript jquery jquery-datatables non-ascii-characters accent-insensitive

javascript - jQuery DataTables-Alfabetización y búsqueda insensibles a los acentos



jquery-datatables non-ascii-characters (7)

En este tema, explique esta cuestión, el truco es reemplazar caracteres extraños con un carácter normal (sin carácter de acento). Por así decirlo.

$.fn.DataTable.ext.type.search.string = function ( data ) { return ! data ? '''' : typeof data === ''string'' ? data .replace( //n/g, " " ) .replace( /[éêè]/g, ''e'' ) : //<------- remplace éêè by e data; }

Hay otro ejemplo

jQuery.fn.DataTable.ext.type.search.string = function ( 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'' ) .replace( /ê/g, ''e'' ) .replace( /î/g, ''i'' ) .replace( /ô/g, ''o'' ) .replace( /è/g, ''e'' ) .replace( /ï/g, ''i'' ) .replace( /ü/g, ''u'' ) .replace( /ç/g, ''c'' ) : data; };

Al usar jQuery DataTables, ¿ es posible realizar búsquedas que no acentúen el uso del filtro? Por ejemplo, cuando pongo el carácter ''e'', ​​me gustaría buscar cada palabra con ''e'' o ''é'', ''è''.

Algo que me vino a la mente es normalizar las cuerdas y ponerlas en una columna separada y oculta, pero eso no resolvería el problema de alfabetización.

EDITAR

Intenté lo siguiente:

$.fn.dataTableExt.ofnSearch = function ( 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'' ) .replace( /ê/g, ''e'' ) .replace( /î/g, ''i'' ) .replace( /ô/g, ''o'' ) .replace( /è/g, ''e'' ) .replace( /ï/g, ''i'' ) .replace( /ü/g, ''u'' ) .replace( /ç/g, ''c'' ) : data; };

JS File Gist


// (Long) list of all accented characters and their folded equivalents var accent_map = { ''/n'':'' '',''ẚ'':''a'',''Á'':''a'',''á'':''a'',''À'':''a'',''à'':''a'',''Ă'':''a'',''ă'':''a'',''Ắ'':''a'',''ắ'':''a'',''Ằ'':''a'',''ằ'':''a'',''Ẵ'':''a'',''ẵ'':''a'',''Ẳ'':''a'',''ẳ'':''a'',''Â'':''a'',''â'':''a'',''Ấ'':''a'',''ấ'':''a'',''Ầ'':''a'',''ầ'':''a'',''Ẫ'':''a'',''ẫ'':''a'',''Ẩ'':''a'',''ẩ'':''a'',''Ǎ'':''a'',''ǎ'':''a'',''Å'':''a'',''å'':''a'',''Ǻ'':''a'',''ǻ'':''a'',''Ä'':''a'',''ä'':''a'',''Ǟ'':''a'',''ǟ'':''a'',''Ã'':''a'',''ã'':''a'',''Ȧ'':''a'',''ȧ'':''a'',''Ǡ'':''a'',''ǡ'':''a'',''Ą'':''a'',''ą'':''a'',''Ā'':''a'',''ā'':''a'',''Ả'':''a'',''ả'':''a'',''Ȁ'':''a'',''ȁ'':''a'',''Ȃ'':''a'',''ȃ'':''a'',''Ạ'':''a'',''ạ'':''a'',''Ặ'':''a'',''ặ'':''a'',''Ậ'':''a'',''ậ'':''a'',''Ḁ'':''a'',''ḁ'':''a'',''Ⱥ'':''a'',''ⱥ'':''a'',''Ǽ'':''a'',''ǽ'':''a'',''Ǣ'':''a'',''ǣ'':''a'',''Ḃ'':''b'',''ḃ'':''b'',''Ḅ'':''b'',''ḅ'':''b'',''Ḇ'':''b'',''ḇ'':''b'',''Ƀ'':''b'',''ƀ'':''b'',''ᵬ'':''b'',''Ɓ'':''b'',''ɓ'':''b'',''Ƃ'':''b'',''ƃ'':''b'',''Ć'':''c'',''ć'':''c'',''Ĉ'':''c'',''ĉ'':''c'',''Č'':''c'',''č'':''c'',''Ċ'':''c'',''ċ'':''c'',''Ç'':''c'',''ç'':''c'',''Ḉ'':''c'',''ḉ'':''c'',''Ȼ'':''c'',''ȼ'':''c'',''Ƈ'':''c'',''ƈ'':''c'',''ɕ'':''c'',''Ď'':''d'',''ď'':''d'',''Ḋ'':''d'',''ḋ'':''d'',''Ḑ'':''d'',''ḑ'':''d'',''Ḍ'':''d'',''ḍ'':''d'',''Ḓ'':''d'',''ḓ'':''d'',''Ḏ'':''d'',''ḏ'':''d'',''Đ'':''d'',''đ'':''d'',''ᵭ'':''d'',''Ɖ'':''d'',''ɖ'':''d'',''Ɗ'':''d'',''ɗ'':''d'',''Ƌ'':''d'',''ƌ'':''d'',''ȡ'':''d'',''ð'':''d'',''É'':''e'',''Ə'':''e'',''Ǝ'':''e'',''ǝ'':''e'',''é'':''e'',''È'':''e'',''è'':''e'',''Ĕ'':''e'',''ĕ'':''e'',''Ê'':''e'',''ê'':''e'',''Ế'':''e'',''ế'':''e'',''Ề'':''e'',''ề'':''e'',''Ễ'':''e'',''ễ'':''e'',''Ể'':''e'',''ể'':''e'',''Ě'':''e'',''ě'':''e'',''Ë'':''e'',''ë'':''e'',''Ẽ'':''e'',''ẽ'':''e'',''Ė'':''e'',''ė'':''e'',''Ȩ'':''e'',''ȩ'':''e'',''Ḝ'':''e'',''ḝ'':''e'',''Ę'':''e'',''ę'':''e'',''Ē'':''e'',''ē'':''e'',''Ḗ'':''e'',''ḗ'':''e'',''Ḕ'':''e'',''ḕ'':''e'',''Ẻ'':''e'',''ẻ'':''e'',''Ȅ'':''e'',''ȅ'':''e'',''Ȇ'':''e'',''ȇ'':''e'',''Ẹ'':''e'',''ẹ'':''e'',''Ệ'':''e'',''ệ'':''e'',''Ḙ'':''e'',''ḙ'':''e'',''Ḛ'':''e'',''ḛ'':''e'',''Ɇ'':''e'',''ɇ'':''e'',''ɚ'':''e'',''ɝ'':''e'',''Ḟ'':''f'',''ḟ'':''f'',''ᵮ'':''f'',''Ƒ'':''f'',''ƒ'':''f'',''Ǵ'':''g'',''ǵ'':''g'',''Ğ'':''g'',''ğ'':''g'',''Ĝ'':''g'',''ĝ'':''g'',''Ǧ'':''g'',''ǧ'':''g'',''Ġ'':''g'',''ġ'':''g'',''Ģ'':''g'',''ģ'':''g'',''Ḡ'':''g'',''ḡ'':''g'',''Ǥ'':''g'',''ǥ'':''g'',''Ɠ'':''g'',''ɠ'':''g'',''Ĥ'':''h'',''ĥ'':''h'',''Ȟ'':''h'',''ȟ'':''h'',''Ḧ'':''h'',''ḧ'':''h'',''Ḣ'':''h'',''ḣ'':''h'',''Ḩ'':''h'',''ḩ'':''h'',''Ḥ'':''h'',''ḥ'':''h'',''Ḫ'':''h'',''ḫ'':''h'',''H'':''h'',''̱'':''h'',''ẖ'':''h'',''Ħ'':''h'',''ħ'':''h'',''Ⱨ'':''h'',''ⱨ'':''h'',''Í'':''i'',''í'':''i'',''Ì'':''i'',''ì'':''i'',''Ĭ'':''i'',''ĭ'':''i'',''Î'':''i'',''î'':''i'',''Ǐ'':''i'',''ǐ'':''i'',''Ï'':''i'',''ï'':''i'',''Ḯ'':''i'',''ḯ'':''i'',''Ĩ'':''i'',''ĩ'':''i'',''İ'':''i'',''i'':''i'',''Į'':''i'',''į'':''i'',''Ī'':''i'',''ī'':''i'',''Ỉ'':''i'',''ỉ'':''i'',''Ȉ'':''i'',''ȉ'':''i'',''Ȋ'':''i'',''ȋ'':''i'',''Ị'':''i'',''ị'':''i'',''Ḭ'':''i'',''ḭ'':''i'',''I'':''i'',''ı'':''i'',''Ɨ'':''i'',''ɨ'':''i'',''Ĵ'':''j'',''ĵ'':''j'',''J'':''j'',''̌'':''j'',''ǰ'':''j'',''ȷ'':''j'',''Ɉ'':''j'',''ɉ'':''j'',''ʝ'':''j'',''ɟ'':''j'',''ʄ'':''j'',''Ḱ'':''k'',''ḱ'':''k'',''Ǩ'':''k'',''ǩ'':''k'',''Ķ'':''k'',''ķ'':''k'',''Ḳ'':''k'',''ḳ'':''k'',''Ḵ'':''k'',''ḵ'':''k'',''Ƙ'':''k'',''ƙ'':''k'',''Ⱪ'':''k'',''ⱪ'':''k'',''Ĺ'':''a'',''ĺ'':''l'',''Ľ'':''l'',''ľ'':''l'',''Ļ'':''l'',''ļ'':''l'',''Ḷ'':''l'',''ḷ'':''l'',''Ḹ'':''l'',''ḹ'':''l'',''Ḽ'':''l'',''ḽ'':''l'',''Ḻ'':''l'',''ḻ'':''l'',''Ł'':''l'',''ł'':''l'',''Ł'':''l'',''̣'':''l'',''ł'':''l'',''̣'':''l'',''Ŀ'':''l'',''ŀ'':''l'',''Ƚ'':''l'',''ƚ'':''l'',''Ⱡ'':''l'',''ⱡ'':''l'',''Ɫ'':''l'',''ɫ'':''l'',''ɬ'':''l'',''ɭ'':''l'',''ȴ'':''l'',''Ḿ'':''m'',''ḿ'':''m'',''Ṁ'':''m'',''ṁ'':''m'',''Ṃ'':''m'',''ṃ'':''m'',''ɱ'':''m'',''Ń'':''n'',''ń'':''n'',''Ǹ'':''n'',''ǹ'':''n'',''Ň'':''n'',''ň'':''n'',''Ñ'':''n'',''ñ'':''n'',''Ṅ'':''n'',''ṅ'':''n'',''Ņ'':''n'',''ņ'':''n'',''Ṇ'':''n'',''ṇ'':''n'',''Ṋ'':''n'',''ṋ'':''n'',''Ṉ'':''n'',''ṉ'':''n'',''Ɲ'':''n'',''ɲ'':''n'',''Ƞ'':''n'',''ƞ'':''n'',''ɳ'':''n'',''ȵ'':''n'',''N'':''n'',''̈'':''n'',''n'':''n'',''̈'':''n'',''Ó'':''o'',''ó'':''o'',''Ò'':''o'',''ò'':''o'',''Ŏ'':''o'',''ŏ'':''o'',''Ô'':''o'',''ô'':''o'',''Ố'':''o'',''ố'':''o'',''Ồ'':''o'',''ồ'':''o'',''Ỗ'':''o'',''ỗ'':''o'',''Ổ'':''o'',''ổ'':''o'',''Ǒ'':''o'',''ǒ'':''o'',''Ö'':''o'',''ö'':''o'',''Ȫ'':''o'',''ȫ'':''o'',''Ő'':''o'',''ő'':''o'',''Õ'':''o'',''õ'':''o'',''Ṍ'':''o'',''ṍ'':''o'',''Ṏ'':''o'',''ṏ'':''o'',''Ȭ'':''o'',''ȭ'':''o'',''Ȯ'':''o'',''ȯ'':''o'',''Ȱ'':''o'',''ȱ'':''o'',''Ø'':''o'',''ø'':''o'',''Ǿ'':''o'',''ǿ'':''o'',''Ǫ'':''o'',''ǫ'':''o'',''Ǭ'':''o'',''ǭ'':''o'',''Ō'':''o'',''ō'':''o'',''Ṓ'':''o'',''ṓ'':''o'',''Ṑ'':''o'',''ṑ'':''o'',''Ỏ'':''o'',''ỏ'':''o'',''Ȍ'':''o'',''ȍ'':''o'',''Ȏ'':''o'',''ȏ'':''o'',''Ơ'':''o'',''ơ'':''o'',''Ớ'':''o'',''ớ'':''o'',''Ờ'':''o'',''ờ'':''o'',''Ỡ'':''o'',''ỡ'':''o'',''Ở'':''o'',''ở'':''o'',''Ợ'':''o'',''ợ'':''o'',''Ọ'':''o'',''ọ'':''o'',''Ộ'':''o'',''ộ'':''o'',''Ɵ'':''o'',''ɵ'':''o'',''Ṕ'':''p'',''ṕ'':''p'',''Ṗ'':''p'',''ṗ'':''p'',''Ᵽ'':''p'',''Ƥ'':''p'',''ƥ'':''p'',''P'':''p'',''̃'':''p'',''p'':''p'',''̃'':''p'',''ʠ'':''q'',''Ɋ'':''q'',''ɋ'':''q'',''Ŕ'':''r'',''ŕ'':''r'',''Ř'':''r'',''ř'':''r'',''Ṙ'':''r'',''ṙ'':''r'',''Ŗ'':''r'',''ŗ'':''r'',''Ȑ'':''r'',''ȑ'':''r'',''Ȓ'':''r'',''ȓ'':''r'',''Ṛ'':''r'',''ṛ'':''r'',''Ṝ'':''r'',''ṝ'':''r'',''Ṟ'':''r'',''ṟ'':''r'',''Ɍ'':''r'',''ɍ'':''r'',''ᵲ'':''r'',''ɼ'':''r'',''Ɽ'':''r'',''ɽ'':''r'',''ɾ'':''r'',''ᵳ'':''r'',''ß'':''s'',''Ś'':''s'',''ś'':''s'',''Ṥ'':''s'',''ṥ'':''s'',''Ŝ'':''s'',''ŝ'':''s'',''Š'':''s'',''š'':''s'',''Ṧ'':''s'',''ṧ'':''s'',''Ṡ'':''s'',''ṡ'':''s'',''ẛ'':''s'',''Ş'':''s'',''ş'':''s'',''Ṣ'':''s'',''ṣ'':''s'',''Ṩ'':''s'',''ṩ'':''s'',''Ș'':''s'',''ș'':''s'',''ʂ'':''s'',''S'':''s'',''̩'':''s'',''s'':''s'',''̩'':''s'',''Þ'':''t'',''þ'':''t'',''Ť'':''t'',''ť'':''t'',''T'':''t'',''̈'':''t'',''ẗ'':''t'',''Ṫ'':''t'',''ṫ'':''t'',''Ţ'':''t'',''ţ'':''t'',''Ṭ'':''t'',''ṭ'':''t'',''Ț'':''t'',''ț'':''t'',''Ṱ'':''t'',''ṱ'':''t'',''Ṯ'':''t'',''ṯ'':''t'',''Ŧ'':''t'',''ŧ'':''t'',''Ⱦ'':''t'',''ⱦ'':''t'',''ᵵ'':''t'',''ƫ'':''t'',''Ƭ'':''t'',''ƭ'':''t'',''Ʈ'':''t'',''ʈ'':''t'',''ȶ'':''t'',''Ú'':''u'',''ú'':''u'',''Ù'':''u'',''ù'':''u'',''Ŭ'':''u'',''ŭ'':''u'',''Û'':''u'',''û'':''u'',''Ǔ'':''u'',''ǔ'':''u'',''Ů'':''u'',''ů'':''u'',''Ü'':''u'',''ü'':''u'',''Ǘ'':''u'',''ǘ'':''u'',''Ǜ'':''u'',''ǜ'':''u'',''Ǚ'':''u'',''ǚ'':''u'',''Ǖ'':''u'',''ǖ'':''u'',''Ű'':''u'',''ű'':''u'',''Ũ'':''u'',''ũ'':''u'',''Ṹ'':''u'',''ṹ'':''u'',''Ų'':''u'',''ų'':''u'',''Ū'':''u'',''ū'':''u'',''Ṻ'':''u'',''ṻ'':''u'',''Ủ'':''u'',''ủ'':''u'',''Ȕ'':''u'',''ȕ'':''u'',''Ȗ'':''u'',''ȗ'':''u'',''Ư'':''u'',''ư'':''u'',''Ứ'':''u'',''ứ'':''u'',''Ừ'':''u'',''ừ'':''u'',''Ữ'':''u'',''ữ'':''u'',''Ử'':''u'',''ử'':''u'',''Ự'':''u'',''ự'':''u'',''Ụ'':''u'',''ụ'':''u'',''Ṳ'':''u'',''ṳ'':''u'',''Ṷ'':''u'',''ṷ'':''u'',''Ṵ'':''u'',''ṵ'':''u'',''Ʉ'':''u'',''ʉ'':''u'',''Ṽ'':''v'',''ṽ'':''v'',''Ṿ'':''v'',''ṿ'':''v'',''Ʋ'':''v'',''ʋ'':''v'',''Ẃ'':''w'',''ẃ'':''w'',''Ẁ'':''w'',''ẁ'':''w'',''Ŵ'':''w'',''ŵ'':''w'',''W'':''w'',''̊'':''w'',''ẘ'':''w'',''Ẅ'':''w'',''ẅ'':''w'',''Ẇ'':''w'',''ẇ'':''w'',''Ẉ'':''w'',''ẉ'':''w'',''Ẍ'':''x'',''ẍ'':''x'',''Ẋ'':''x'',''ẋ'':''x'',''Ý'':''y'',''ý'':''y'',''Ỳ'':''y'',''ỳ'':''y'',''Ŷ'':''y'',''ŷ'':''y'',''Y'':''y'',''̊'':''y'',''ẙ'':''y'',''Ÿ'':''y'',''ÿ'':''y'',''Ỹ'':''y'',''ỹ'':''y'',''Ẏ'':''y'',''ẏ'':''y'',''Ȳ'':''y'',''ȳ'':''y'',''Ỷ'':''y'',''ỷ'':''y'',''Ỵ'':''y'',''ỵ'':''y'',''ʏ'':''y'',''Ɏ'':''y'',''ɏ'':''y'',''Ƴ'':''y'',''ƴ'':''y'',''Ź'':''z'',''ź'':''z'',''Ẑ'':''z'',''ẑ'':''z'',''Ž'':''z'',''ž'':''z'',''Ż'':''z'',''ż'':''z'',''Ẓ'':''z'',''ẓ'':''z'',''Ẕ'':''z'',''ẕ'':''z'',''Ƶ'':''z'',''ƶ'':''z'',''Ȥ'':''z'',''ȥ'':''z'',''ʐ'':''z'',''ʑ'':''z'',''Ⱬ'':''z'',''ⱬ'':''z'',''Ǯ'':''z'',''ǯ'':''z'',''ƺ'':''z'',''2'':''2'',''6'':''6'',''B'':''B'',''F'':''F'',''J'':''J'',''N'':''N'',''R'':''R'',''V'':''V'',''Z'':''Z'',''b'':''b'',''f'':''f'',''j'':''j'',''n'':''n'',''r'':''r'',''v'':''v'',''z'':''z'',''1'':''1'',''5'':''5'',''9'':''9'',''A'':''A'',''E'':''E'',''I'':''I'',''M'':''M'',''Q'':''Q'',''U'':''U'',''Y'':''Y'',''a'':''a'',''e'':''e'',''i'':''i'',''m'':''m'',''q'':''q'',''u'':''u'',''y'':''y'',''0'':''0'',''4'':''4'',''8'':''8'',''D'':''D'',''H'':''H'',''L'':''L'',''P'':''P'',''T'':''T'',''X'':''X'',''d'':''d'',''h'':''h'',''l'':''l'',''p'':''p'',''t'':''t'',''x'':''x'',''3'':''3'',''7'':''7'',''C'':''C'',''G'':''G'',''K'':''K'',''O'':''O'',''S'':''S'',''W'':''W'',''c'':''c'',''g'':''g'',''k'':''k'',''o'':''o'',''s'':''s'',''w'':''w'' }; function accent_fold (s) { if (!s) { return ''''; } var ret = ''''; for (var i = 0; i < s.length; i++) { ret += accent_map[s.charAt(i)] || s.charAt(i); } return ret; }; $.fn.dataTableExt.ofnSearch = function (data) { return accent_fold(data); };

Modifiqué el código original de su pregunta para usar una función de acentuar y plegar (disponible en Github) . También podría estar interesado en el artículo original de "A List Apart" .


Estás tan cerca en tu edición, lo que has intentado, excepto que careces de lo más importante: definir el "alcance" o el tipo de filtro de tu plugin . La función nunca se llama, ¿verdad? Esto se debe a que el complemento no está asociado con un sType .

Para que su código funcione, simplemente declare el plugin así:

$.fn.dataTableExt.ofnSearch[''string''] = function ( data ) { return ! data ? '''' : typeof data === ''string'' ? .. .. }

Ver este violín -> http://jsfiddle.net/Y5ycM/ He convertido algunas columnas de "Internet Explorer" en "Internet éxplorer", algunas "Opera" en "öpera", etc. Intente buscar ex u op .

Consulte https://datatables.net/development/filtering , sección "Filtrado de columna basado en tipo":

Cuando asigna sType para una columna (o lo detecta automáticamente DataTables o un plug-in de detección de tipo), normalmente lo utilizará para la clasificación personalizada, pero también se puede usar para proporcionar opciones de filtrado personalizadas. Esto se hace agregando funciones al objeto con un nombre de parámetro que coincide con el sType para esa columna de destino :

Supongo que aquí hay un error tipográfico o de supervisión en la documentación, dice

$.fn.dataTableExt.ofnSearch pero debería ser correctamente $.fn.dataTableExt.ofnSearch[sType] , como el ejemplo justo después señala claramente.

Actualización . Allan Jardine confirma que esto es un error en 1.9.4 aquí :

Sí, error en 1.9.4. 1.9.4 rompió esta parte del código desafortunadamente. También afecta la eliminación de etiquetas HTML del filtro, ya que estaba utilizando el mismo mecanismo. Sin embargo, está arreglado en las 1.10 betas.


jQuery v: 2.1.0
jquery.dataTables.min.js v: 1.10.7
dataTables.responsive.min.js v: 1.0.6

Utilicé el plugin acento neutralizar (gracias Allan Jardine):
http://www.datatables.net/plug-ins/filtering/type-based/accent-neutralise

Y acabo de hacer adaptaciones mínimas para mis propósitos:

Hice un ejemplo combinando las respuestas en: http://jsfiddle.net/xebtyaeL/5/

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, ''e'' ) .replace( /î/g, ''i'' ) .replace( /ô/g, ''o'' ) .replace( /è/g, ''e'' ) .replace( /ï/g, ''i'' ) .replace( /ü/g, ''u'' ) .replace( /ã/g, ''a'' ) .replace( /õ/g, ''o'' ) .replace( /ç/g, ''c'' ) .replace( /ì/g, ''i'' ) : data; }; var tabla = jQuery(''#datatable-table'').dataTable( { } ); new jQuery.fn.dataTable.Responsive( tabla ); jQuery(document).ready(function() { var table = jQuery(''#datatable-table'').DataTable(); // Remove accented character from search input as well jQuery(''#datatable-table_filter input'').keyup( function () { table .search( jQuery.fn.DataTable.ext.type.search.string( this.value ) ) .draw(); } ); } );


Creo que la solución de Jean-Sébastien (lo siento, no puedo comentar solo) es la única que realmente responde la pregunta. Si escribe "Explorer" o "éxplorer", debería devolver "Explorer" Y "éxplorer". En las sugerencias anteriores, si se escribía "éxplorer", la búsqueda no arrojaría nada.

El truco es que su solución pierde una parte en la función de teclado.

$(''#example_filter input[type=search]'').keyup(function () { var table = $(''#example'').DataTable(); table.search( $.fn.DataTable.ext.type.search.string(accents_supr(this.value)) ).draw(); });

Vea esta horquilla de violín para una demostración en funcionamiento. http://jsfiddle.net/syvo/caxj9koL/


Comentarios adicionales sobre el filtrado de columnas: los comentarios anteriores solo funcionarán si la columna para filtrar es de tipo "cadena" (el tipo de columna DataTables definido aquí ).

Si la columna contiene etiquetas HTML, la lib DataTables etiquetará automáticamente como tipo "html", y activará la devolución de llamada de búsqueda asociada en ese tipo. Por lo tanto, para que el filtrado se aplique correctamente, la devolución de llamada debe registrarse en el tipo "html":

$.fn.DataTable.ext.type.search[''html''] = function(data) { return unaccent(data); };

donde acento es una función que elimina acentos / signos diacríticos / caracteres extraños de la cadena de entrada.


Para lectores futuros,

Usar acento-neutralizar solo resuelve parte del problema de búsqueda de una manera que no distingue entre mayúsculas y minúsculas. El complemento solo reemplaza algunos caracteres acentuados por caracteres no acentuados dentro de la tabla. También deberá eliminar los acentos de la entrada del cuadro de texto de búsqueda.

Otro problema que tuve es que el complemento solo reemplaza las letras minúsculas, así que seguí adelante y agregué un mapeo adicional para las letras acentuadas más comunes en francés, basado en esta otra gran solución: Eliminar acentos / signos diacríticos en una cadena en JavaScript

acento-neutralizar-french.js

function accents_supr(data){ return !data ? '''' : typeof data === ''string'' ? data .replace(//n/g, '' '') .replace(/[/u0061/u24D0/uFF41/u1E9A/u00E0/u00E1/u00E2/u1EA7/u1EA5/u1EAB/u1EA9/u00E3/u0101/u0103/u1EB1/u1EAF/u1EB5/u1EB3/u0227/u01E1/u00E4/u01DF/u1EA3/u00E5/u01FB/u01CE/u0201/u0203/u1EA1/u1EAD/u1EB7/u1E01/u0105/u2C65/u0250]/g, ''a'') .replace(/[/u0065/u24D4/uFF45/u00E8/u00E9/u00EA/u1EC1/u1EBF/u1EC5/u1EC3/u1EBD/u0113/u1E15/u1E17/u0115/u0117/u00EB/u1EBB/u011B/u0205/u0207/u1EB9/u1EC7/u0229/u1E1D/u0119/u1E19/u1E1B/u0247/u025B/u01DD]/g, ''e'') .replace(/[/u0069/u24D8/uFF49/u00EC/u00ED/u00EE/u0129/u012B/u012D/u00EF/u1E2F/u1EC9/u01D0/u0209/u020B/u1ECB/u012F/u1E2D/u0268/u0131]/g, ''i'') .replace(/[/u006F/u24DE/uFF4F/u00F2/u00F3/u00F4/u1ED3/u1ED1/u1ED7/u1ED5/u00F5/u1E4D/u022D/u1E4F/u014D/u1E51/u1E53/u014F/u022F/u0231/u00F6/u022B/u1ECF/u0151/u01D2/u020D/u020F/u01A1/u1EDD/u1EDB/u1EE1/u1EDF/u1EE3/u1ECD/u1ED9/u01EB/u01ED/u00F8/u01FF/u0254/uA74B/uA74D/u0275]/g, ''o'') .replace(/[/u0075/u24E4/uFF55/u00F9/u00FA/u00FB/u0169/u1E79/u016B/u1E7B/u016D/u00FC/u01DC/u01D8/u01D6/u01DA/u1EE7/u016F/u0171/u01D4/u0215/u0217/u01B0/u1EEB/u1EE9/u1EEF/u1EED/u1EF1/u1EE5/u1E73/u0173/u1E77/u1E75/u0289]/g, ''u'') .replace(/[/u0041/u24B6/uFF21/u00C0/u00C1/u00C2/u1EA6/u1EA4/u1EAA/u1EA8/u00C3/u0100/u0102/u1EB0/u1EAE/u1EB4/u1EB2/u0226/u01E0/u00C4/u01DE/u1EA2/u00C5/u01FA/u01CD/u0200/u0202/u1EA0/u1EAC/u1EB6/u1E00/u0104/u023A/u2C6F]/g, ''A'') .replace(/[/u0045/u24BA/uFF25/u00C8/u00C9/u00CA/u1EC0/u1EBE/u1EC4/u1EC2/u1EBC/u0112/u1E14/u1E16/u0114/u0116/u00CB/u1EBA/u011A/u0204/u0206/u1EB8/u1EC6/u0228/u1E1C/u0118/u1E18/u1E1A/u0190/u018E]/g, ''E'') .replace(/[/u0049/u24BE/uFF29/u00CC/u00CD/u00CE/u0128/u012A/u012C/u0130/u00CF/u1E2E/u1EC8/u01CF/u0208/u020A/u1ECA/u012E/u1E2C/u0197]/g, ''I'') .replace(/[/u004F/u24C4/uFF2F/u00D2/u00D3/u00D4/u1ED2/u1ED0/u1ED6/u1ED4/u00D5/u1E4C/u022C/u1E4E/u014C/u1E50/u1E52/u014E/u022E/u0230/u00D6/u022A/u1ECE/u0150/u01D1/u020C/u020E/u01A0/u1EDC/u1EDA/u1EE0/u1EDE/u1EE2/u1ECC/u1ED8/u01EA/u01EC/u00D8/u01FE/u0186/u019F/uA74A/uA74C]/g, ''O'') .replace(/[/u0055/u24CA/uFF35/u00D9/u00DA/u00DB/u0168/u1E78/u016A/u1E7A/u016C/u00DC/u01DB/u01D7/u01D5/u01D9/u1EE6/u016E/u0170/u01D3/u0214/u0216/u01AF/u1EEA/u1EE8/u1EEE/u1EEC/u1EF0/u1EE4/u1E72/u0172/u1E76/u1E74/u0244]/g, ''U'') .replace(/ç/g, ''c'') .replace(/Ç/g, ''C'') : data; }; jQuery.fn.DataTable.ext.type.search[''string''] = function(data) { return accents_supr(data); };

En su página con una tabla de datos:

// Remove accented character from search input as well $(''#dt_basic_filter input[type=search]'').keyup( function () { var table = $(''#dt_basic'').DataTable(); table.search( jQuery.fn.DataTable.ext.type.search.string(this.value) ).draw(); } );