Diacritics-neutralise

Replace accented characters (diacritics) with latin equivalents

  • Author: David Konrad

Demo

http://plnkr.co/edit/Gf96d39S0b0CETt0hr4L?p=preview

When filtering a table with accented characters (letters with diacritical marks) it can be frustrating to have an input such as Zurich not match Zürich in the table (u !== ü).

This type based search plug-in replaces the built-in string formatter in DataTables with a function that will replace a comprehensive range of letters with diacritical marks to their "normalized" a..Z latin equivalents.

This plug-in targets a wider scope of languages than the accent-neutralise plugin. European languages such as slavic, nordic, baltic, finnish, celtic, albanian, hungarian (etc) is covered as well as turkish and asian languages written in european latin.

For example is the letters EÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ searchable by the input 'E'.

As a additional feature you can customise the plugin by allowing certain diacratics:

jQuery.fn.DataTable.ext.type.search.allowDiacritics( array );

For example you would like to be able filter the nordic letters æ, ø, å :

jQuery.fn.DataTable.ext.type.search.allowDiacritics( ['æ', 'ø', 'å' ] );

Use

This plug-in can be obtained and used in multiple different ways.

Browser

This plug-in is available on the DataTables CDN:

JS

The plug-in will then automatically register itself against a global DataTables instance. This file can also be used if you are using an AMD loader such as Require.js.

Note that if you are using multiple plug-ins, it can be beneficial in terms of performance to combine the plug-ins into a single file and host it on your own server, rather than making multiple requests to the DataTables CDN.

NPM

The plug-ins are all available on NPM (which can also be used with Yarn or any other Javascript package manager) as part of the datatables.net-plugins package. To use this plug-in, first install the plug-ins package:

npm install datatables.net-plugins

ES modules

Then, if you are using ES modules, import datatables.net, any other DataTables extensions you need, and the plug-in:

import DataTable from 'datatables.net';
import 'datatables.net-plugins/filtering/type-based/diacritics-neutralise.mjs';

CommonJS

If you are using a CommonJS loader for Node (e.g. with older versions of Webpack, or non-module Node code) use the following method to require the plug-in:

var $ = require('jquery');
var DataTable = require('datatables.net');
require('datatables.net-plugins/filtering/type-based/diacritics-neutralise.js');

Version control

If you have any ideas for how this plug-in can be improved, or spot anything that is in error, it is available on GitHub and pull requests are very welcome!