英数字のデータを含む列をソートしようとしています。残念ながらTablesorterしないソート正しくすなわちjQuery Tablesorter - 英数字列の並べ替え
- sometext1
- sometext10
- sometext1
- sometext2
- sometext3
- sometext10
- sometext2
- sometext3
すべてのヘルプは、最も高く評価されるだろう。ありがとう!だから、
英数字のデータを含む列をソートしようとしています。残念ながらTablesorterしないソート正しくすなわちjQuery Tablesorter - 英数字列の並べ替え
すべてのヘルプは、最も高く評価されるだろう。ありがとう!だから、
ソリューション:
$.tablesorter.addParser({
id: 'alphanum',
is: function(s) {
return false;
},
format: function(s) {
var str = s.replace(/(\d{1,2})/g, function(a){
return pad(a);
});
return str;
},
type: 'text'
});
function pad(num){
var s = '00000' + num;
return s.substr(s.length-5);
}
http://tablesorter.com/docs/example-parsers.html
、この例では、関数で、独自の注文logic.Lookを作成する方法を示しています
format: function(s) {
// format your data for normalization
return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);
},
あなたは、テキストとの数字の部分を取得するにはjavascript関数を記述する必要がありますあなたの文字列 "sometext3"をフォーマットし、ゼロパディング "sometext00000003"で番号を整形すると、これはソートの問題を修正し、クライアントに表示される方法を変更しません。
<script>
function normalizeAlphaNumeric(text) {
r = new RegExp("([^\\d]*)(\\d*)");
var match = r.exec(text);
return match[1] + pad(match[2]);
}
function pad(num) {
var s = "000000000" + num;
return s.substr(s.length-8); // i chose 8
}
document.write(normalizeAlphaNumeric("sometext1") + "<br/>");
document.write(normalizeAlphaNumeric("sometext2")+ "<br/>");
document.write(normalizeAlphaNumeric("sometext3")+ "<br/>");
document.write(normalizeAlphaNumeric("sometext10")+ "<br/>");
</script>
これの出力は次のとおりです:今ソート可能である
sometext00000001
sometext00000002
sometext00000003
sometext00000010
はここで初歩的な例です。
は正しい方向に私を指してくれてありがとう! – benjamunky