سؤال

لدي جدول بالأسعار بهذا التنسيق:"1.234,56"، (فاصل الآلاف عبارة عن نقطة، والفاصل العشري عبارة عن فاصلة).لا يعمل هذا التنسيق لأن البرنامج المساعد tablesorter يراه كسلاسل وليس كرقم عندما يكون هناك حرف مختلف بداخله (يُسمح فقط بالأرقام +/- و"." للكسور العشرية).

كيف يمكنني إزالة الفواصل واستبدال الفواصل بنقاط قبل الفرز؟

هل كانت مفيدة؟

المحلول

حسنًا ، أعتقد أنني حلتها. طاولتي لها عملة ، لذا قمت بتحرير محلل "العملة" ولكن يمكنك القيام بذلك بشكل أساسي مع أي شيء آخر. يبدو محلل العملة هكذا في النهاية:

ts.addParser({
    id: "currency",
    is: function(s) {
        return /^[£$€?.]/.test(s);
    },
    format: function(s) {
        s=s.replace('.', '');
        return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.]/g),""));
    },
    type: "numeric"
});

(بالمناسبة ، كيف تقوم بتشغيل Synthax تمييز هنا على Stackoverflow؟)

نصائح أخرى

'1.234,56'​.replace('.', '').replace(',', '.') // '1234.56'
$.tablesorter.addParser({ 
        // set a unique id 
        id: 'pesos', 
        is: function(s) { 
            // return false so this parser is not auto detected 
            return false; 
        }, 
        format: function(s) { 
            // format your data for normalization
            return s.replace(/' '/g,'').replace(/\./g, ''); 
        }, 
        // set type, either numeric or text 
        type: 'numeric' 
    });
    $("#menuh").sticky({topSpacing:0});
    $("#myTable").tablesorter();
    $("#myTableBienes").tablesorter({ 
            headers: { 
                5: { 
                    sorter:'pesos' 
                } 
            } 
        });


});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top