2

tablesorterを使用して、いくつかのドル記号が含まれるテーブルセルの列を並べ替えたいと思います。ドル記号の量は1ドルから5ドル$$$$$の範囲で、1が最低、5が最高でソートする必要があります。注:多くのドル記号がスローされるため、これらの文字列を正確に一致させる必要があります。したがって、$$$は$$および$と区別する必要があります。

現在使用しているコードは次のとおりです。ドル記号を入力すると機能しませんが、「b」と「a」に置き換えると完全に機能します。正規表現でドル記号を表すために必要であると読んだので、1を表す2つのドル記号があります。私も試し\$ました。これは、ドル記号が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 に答える