chelbeh
11/11/2014 - 7:05 AM

Склонение слов после числительных

Склонение слов после числительных

days.decline('день', 'дня', 'дней'); // для days = 23 вернёт строку "23 дня"
days.decline('день', 'дня', 'дней', false); // а так получится "дня"
Number.prototype.decline = function(w1, w2, w5, complex) {
    var nn = this.valueOf() % 100, n = nn % 10;
    var w = n > 4 || n === 0 || nn - n === 10 ? w5 : (n === 1 ? w1 : w2);
    return complex === false ? w : (this.toString() + ' ' + w);
};