jQuery 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')
   }
});

编辑:将此插件与表排序器一起使用时,它没有显示错误/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');
   }
});

并像我想工作一样工作。

使用

替换为 /g 时,不要使用引号(更新的演示):

$.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时,它会进行字符等效替换。只需将缺少的波兰语字符添加到列表中:

$.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" : "u017au017c", // źż
    "Z" : "u0179u017b" // ŹŻ
});

最新更新