Склонение существительных на javascript
Иногда на сайте нужно красиво и по-человечески написать количество чего-то. Например количество товаров в корзине в формате «В Вашей корзине 3 товара» или количество новостей: «еще 3 новости». Нередко, чтобы не делать дополнительную работу, такую мелочь разработчики просто переделывают в формат, к примеру, «Товаров в корзине: 3» и т.п.
Думаю всегда приятнее, когда сайт общается с нами на грамотном русском языке, поэтому я хочу поделиться очень простым решением задачи склонения существительных на javascript. Решение универсальное и может использоваться для разных случаев.
1 2 3 4 5 6 |
<script> function declOfNum(number, titles) { cases = [2, 0, 1, 1, 1, 2]; return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ]; } </script> |
Простейшие примеры использования
1 |
В Вашей корзине 3 <script>document.write(declOfNum(3, ['товар', 'товара', 'товаров']));</script> |
Выведет: «В Вашей корзине 3 товара»
1 |
У Вас 26 <script>document.write(declOfNum(26, ['сообщение', 'сообщения', 'сообщений']));</script> |
Выведет: «У Вас 26 сообщений»
Меня можно нанять. Напишите мне на эл. почту [email protected]
Ваш комментарий