jquery tablesorter 插件仅以一种方式排序

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

并且按照我想要的方式工作。

最佳答案

使用 /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');
    }
});

或者,你可以尝试我的 tablesorter 分支character equivalents replacementssortLocaleCompare 选项为 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" : "\u017a\u017c", // źż
    "Z" : "\u0179\u017b" // ŹŻ
});

关于jquery tablesorter 插件仅以一种方式排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10798081/

相关文章:

javascript - 正则表达式在 jquery 中只允许数字和单点

javascript - Openlayer3 - 避免折线在动画过程中消失

tablesorter - Jquery Tablesorter,按链接url而不是链接内容排序

tablesorter -- pager_output 跨多个表共享的变量

jquery - 使用 jQuery TableSorter 按多列对表进行排序

jquery - 如何让我的 TreeView 在进入子页面后显示数据?

javascript - 如何将表格 td 文本添加到进度值中

javascript - jQuery Autocomplete - 找不到在建议 div 上设置宽度的位置?

php - Matt Kruse 的 javascript 日期排序未正确排序

javascript - jquery 在表之间移动行禁用 javascript