jquery tablesorter插件排序只是一种方式

时间:2012-05-29 11:18:14

标签: jquery tablesorter

您已经编写了tablesorter插件来对波兰字符进行排序,但插件只是单向排序 http://jsfiddle.net/Gk43v/这里是示例和插件代码

$.tablesorter.addParser({
   id: 'polish-chars' ,
   type: 'text',
   is: function(s)
   {
       return false;
   },
   format: function(s)
   {
       return
       s.replace('\u0105'/g, 'a')
       .replace('\u0104'/g, 'A')
       .replace('\u0118'/g, 'E')
       .replace('\u0119'/g, 'e')
       .replace('\u0107'/g, 'c')
       .replace('\u0106'/g, 'C')
       .replace('\u0143'/g, 'N')
       .replace('\u0144'/g, 'n')
       .replace('Ó'/g, 'O')
       .replace('ó'/g, 'o')
       .replace('\u0141'/g, 'L')
       .replace('\u0142'/g, 'l')
       .replace('\u015a'/g, 'S')
       .replace('\u015b'/g, 's')
       .replace('\u0179'/g, 'Z')
       .replace('\u017a'/g, 'z')
       .replace('\u017b'/g, 'Z')
       .replace('\u017c'/g, 'z')
   }
});

编辑: 将此插件与tablesorter一起使用时,它没有显示错误/g,因此它应该看起来像

$.tablesorter.addParser({
   id: 'polish-chars',
   type: 'text',
   is: function(s)
   {
       return false;
   },
   format: function(s)
   {
       return s.replace('ą', 'a')
               .replace('Ą', 'A')
               .replace('Ę', 'E')
               .replace('ę', 'e')
               .replace('ć', 'c')
               .replace('Ć', 'C')
               .replace('Ń', 'N')
               .replace('ń', 'n')
               .replace('Ó', 'O')
               .replace('ó', 'o')
               .replace('Ł', 'L')
               .replace('ł', 'l')
               .replace('Ś', 'S')
               .replace('ś', 's')
               .replace('Ź', 'Z')
               .replace('ź', 'z')
               .replace('Ż', 'Z')
               .replace('ż', 'z');
   }
});

就像我想工作一样工作。

1 个答案:

答案 0 :(得分:2)

使用/g替换时,请勿使用引号(updated demo):

$.tablesorter.addParser({
    id: 'polish-chars',
    type: 'text',
    is: function(s) {
        return false;
    },
    format: function(s) {
       return s.replace(/\u0105/g, 'a')
       .replace(/\u0104/g, 'A')
       .replace(/\u0118/g, 'E')
       .replace(/\u0119/g, 'e')
       .replace(/\u0107/g, 'c')
       .replace(/\u0106/g, 'C')
       .replace(/\u0143/g, 'N')
       .replace(/\u0144/g, 'n')
       .replace(/Ó/g, 'O')
       .replace(/ó/g, 'o')
       .replace(/\u0141/g, 'L')
       .replace(/\u0142/g, 'l')
       .replace(/\u015a/g, 'S')
       .replace(/\u015b/g, 's')
       .replace(/\u0179/g, 'Z')
       .replace(/\u017a/g, 'z')
       .replace(/\u017b/g, 'Z')
       .replace(/\u017c/g, 'z');
    }
});

或者,当sortLocaleCompare选项为true时,您可以尝试tablesortercharacter equivalents replacements分叉。只需将缺少的波兰语字符添加到列表中:

$.extend( $.tablesorter.characterEquivalents, {
    "a" : "\u0105", // ą
    "A" : "\u0104", // Ą
    "c" : "\u0107", // ć
    "C" : "\u0106", // Ć
    "e" : "\u0119", // ę
    "E" : "\u0118", // Ę
    "l" : "\u0142", // ł
    "L" : "\u0141", // Ł
    "n" : "\u0144", // ń
    "N" : "\u0143", // Ń
    "o" : "\u00f3", // ó
    "O" : "\u00d3", // Ó
    "s" : "\u015b", // ś
    "S" : "\u015a", // Ś
    "z" : "\u017a\u017c", // źż
    "Z" : "\u0179\u017b" // ŹŻ
});