2

我想使用 tablesorter 对包含多个美元符号的表格单元格列进行排序。美元符号的数量从 1 美元到 5 美元美元不等,并且应该以 1 为最低和 5 为最高进行排序。注意:我需要这些字符串完全匹配,因为会有很多美元符号被抛出,所以 $$$ 需要与 $$ 和 $ 区分开来。

这是我目前使用的代码,当我有美元符号时它不起作用,但是当我用“b”和“a”替换它们时,它完美地工作。我有 2 个美元符号代表 1,因为我读到这是在正则表达式中表示美元符号所必需的。我也试过了\$。这可能是由于在 HTML 表中输入美元符号的方式造成的吗?我使用了标准的“$”和“ $”,都不能正常工作。

   // add parser through the tablesorter addParser method 
    $.tablesorter.addParser({ 
        // set a unique id 
        id: 'pricerange', 
        is: function(s) { 
            // return false so this parser is not auto detected 
            return false; 
        }, 
        format: function(s) { 
            // format your data for normalization 
            return s.toLowerCase().replace(/\bd\b/g,3).replace(/\bc\b/g,2).replace(/\b$$$$\b/g,1).replace(/\b$$\b/g,0); 
        }, 
        // set type, either numeric or text 
        type: 'numeric' 
    }); 

    $(function() { 
        $("myTable").tablesorter({ 
            headers: { 
                3: { 
                    sorter:'pricerange' 
                } 
            } 
        }); 
    }); 
4

1 回答 1

2

尝试

return s.match(/\$/g).length;
于 2013-03-10T05:21:40.880 回答