Я уже писал подобную статью, только функция была написана на php.
В этой же статье я написал функцию для склонения слов на js.
Например, 1 лайк, 2 лайка или 5 лайков. В приведенном мной примере, склоняется число лайков. По сути, функция очень простая: функция будет получать число и три формы слова, проанализировав число, функция вернет нужную форму слова.
Код функции:
// склонение слова
function numForm(number, forma1, forma2, forma3){
var regexp1 = /[056789]$/;
var match1 = regexp1.exec(number);
var regexp2 = /[1]$/;
var match2 = regexp2.exec(number);
var regexp3 = /[234]$/;
var match3 = regexp3.exec(number);
if((number == "0") || ((number >= "5") && (number <= "20")) || match1 != null){
return forma3;
}
if(match2 != null){
return forma1;
}
if(match3 != null){
return forma2;
}
}
Пример использования:
var num = 1; var textLike = numForm(num, 'Лайк', 'Лайка', 'Лайков'); alert(textLike);
