Sortera kinesiska tecken i javascript

May 27

Exempel kinesiska tecken

För att träna på att skriva plug-in till jQuery komponenten Datatables så har jag gjort en websida: http://sorting.lcube.se/ . Där kan man prova sortera på olika begrepp med min plug-in. Jag tänker förklara hur jag förstått hur kinesiska tecken sorteras samt utveckla hur jag gör  och vilka bekymmer som uppstår. Det första problemet jag hade var att jag trodde att 三 (san1) kom efter 二 (Er4). Det här måste vara en bugg var min första reflektion. Men efter att ha sovit på saken så insåg jag att  talet 3  三 (san1) har ju radikalen 一 vilket har färre streck än vad teckent för två som har två streck i sin radikal.

Min plugin är idag bara ett fåtal rader i javascript. Tricket för att sortera kinesiska tecken  är att använda javascripts localCompare. Det finns dock kända problem med olika webläsare som jag tänkte undersöka och skriva mer om här.

$.fn.dataTableExt.oSort['chinese-string-asc'] = function (s1, s2) {
    return s1.localeCompare(s2);
};
$.fn.dataTableExt.oSort['chinese-string-desc'] = function (s1, s2) {
    return s2.localeCompare(s1);
};
 
/* Main function*/
function ColorDataTablesInit(tableDivId) {
 
 
    $(tableDivId).dataTable({
        "sPaginationType": "full_numbers",
        "aoColumnDefs": [{
            "sType": "chinese-string",
            "aTargets": [1,2,3,4]
        }]
    });
 
}

One comment

  1. Fast jag har ju inte le5nat, jag har kf6rt min egen gamla Bernina. Och nu kf6r jag min egen nya Bernina. Och oj se5 kul vi har! Seam guiden satte jag pe5 ff6rle4ngningsbordet dikret och vet du vad nu syr jag rak raksf6m iste4llet ff6r vinglig se5dan! He5ller pe5 med Hunter’s star i pastell, le4r bli en bebiskryp-filt. Ff6r stor ff6r att bli barnvagnste4cke iaf.Det snackades ne5t om ne5n syhelg, men jag vet inte vart eller ne4r eller ne5t se5nt. Men det visar sig.Och min ve4rvningskampanj till symestern ge5r bra bland kompisarna, tve5 anme4lningar till ska visst dimpa in inom ett par veckor.

Leave a Reply

Your email address will not be published.