Главная » Файлы » Прочие скрипты » Яваскрипты

Правильное склонение числительных на javascript
19.11.14, 16:14:53



Очень простое решение для тех, кто хочет грамотное склонение числительных на своих сайтах. Суть проста: по-умолчанию на вашем сайте наверняка числительные выглядят вот так: 1 день, 2 день, 6 день. Данное решение исправляет данную проблему и после его правильного применения у нас получится 1 день, 2 дня, 6 дней

Для начала посмотрите ДЕМО

Использование:

1. Основная функция:
Код
function numberOf(numberof, value, suffix) {
  var keys = [2, 0, 1, 1, 1, 2];
  var mod = numberof % 100;
  var suffix_key = mod > 4 && mod < 20 ? 2 : keys[Math.min(mod % 10, 5)];

  return value + suffix[suffix_key];
}


2. Пример использования функции:
Код
alert('Я на apo-ucoz 1 ' + numberOf(1, '', ['год', 'года', 'лет']));

Код
alert('До захода солнца 5 ' + numberOf(5, 'час', ['', 'а', 'ов']));


Думаю, этих примеров достаточно, чтобы вы поняли, как использовать функцию. Если вопросы ещё остались - задавайте их в комментариях

За основу взята ЭТА статья

Материал подготовлен Apocalypse
Категория: Яваскрипты | Добавил: Apocalypse | Теги: числительных, склонение, правильное, JavaScript, на
Просмотров: 760 | Загрузок: 0 | Комментарии: 4 | Рейтинг: 1.0/5
Всего комментариев: 4
0
Правильное склонение числительных на javascript - это 1 year, 2 year, 3 year tongue .

Ну для русских разработчиков будет полезно, наверно.

0
Не, не катит. 1 year, 2 years, 3 years... В английском то и нет запар с этим делом, а вот для русского нужно немного задымить  happy

0
Не понимаю смысла писать дважды одно и то же число... Мне кажется, что легче в функции возвращать и число еще, то есть вместо
Код
return value + suffix[suffix_key];
использовать
Код
return value + numberof + " " + suffix[suffix_key];

0
Агась smile

Имя *:
Email: