Множественная форма слова в зависимости от количества

Однажды возникла задачка выводить правильно количество, допустим, товаров. Правильно - это значит не "количество товаров: N", а "N товаров". То бишь множественную форму слова. То есть стало нужно написать функцию, которая в зависимости от числа N выдает правильную форму слова "товар".

На выходе получилась простенькая функция на javascript, которую я и сохраняю для упрощения дальнейшего воспроизведения, а так же предлагаю вашему вниманию:

function plural_word (n) {
  if (n%100 > 10 && n%100 < 20) return 'товаров';
  switch (n % 10) {
    case 1:return 'товар';
    case 2:return 'товара';
    case 3:return 'товара';
    case 4:return 'товара';
    default:return 'товаров';
  }
}

Смысл предельно прост - в зависимости от остатка деления на 10 выдаем соответствующую правильную множественную форму слова, за исключением чисел, оканчивающихся на 11 .. 19.

Первое условие получилось немного сложным в связи с отказом javascript обрабатывать 20 > n%100 > 10.

Всем удачи! Будьте дружелюбны к пользователям, построение фраз в правильном, человекоудобном формате выделит ваш сайт на фоне других. Множественная форма слова пример этому!

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <i> <strong> <b> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
CAPTCHA на основе изображений
Введите код с картинки