Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2013, 20:20
Новичок на форуме
Отправить личное сообщение для SVadeX Посмотреть профиль Найти все сообщения от SVadeX
 
Регистрация: 29.09.2013
Сообщений: 1

Проблема со склонениями
По идее этот код должен склонять слово в соответствии с заданным возрастом:
function text(age) {
	var txt;
	count = age % 100;
	if (count >= 5 && count <= 20) {
		txt = 'лет';
	} else {
		count = count % 10;
		if (count == 1) {
			txt = 'год';
		} else if (count >= 2 && count <= 4) {
			txt = 'года';
		} else {
			txt = 'лет';
		}
	}
	return txt;
}

Тем не менее он не работает, например, с числом 23 — он выдаёт результатом «лет».
Может быть всё просто, и это у меня башка после целого дня работы не варит?
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2013, 20:27
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

function text(age) {
	var txt;
	count = age % 100;
	if (count >= 5 && count <= 20) {
		txt = 'лет';
	} else {
		count = count % 10;
		if (count == 1) {
			txt = 'год';
		} else if (count >= 2 && count <= 4) {
			txt = 'года';
		} else {
			txt = 'лет';
		}
	}
	return txt;
}
alert(23 + ' ' + text(23));


// функция для склонения слов (значение, (1)"день", (2)"дня", (5)"дней")
function plural(n,str1,str2,str5){return n + ' ' + ((((n%10)==1)&&((n%100)!=11))?(str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(str2):(str5)))}
alert(plural(23, 'год', 'года', 'лет'));

Последний раз редактировалось BETEPAH, 29.09.2013 в 20:32.
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2013, 21:38
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

в MDN тема раскрыта полностью, для всех известных науке локалей: https://developer.mozilla.org/en-US/...on_and_Plurals

собственно код доступен по ссылке resource://gre/modules/PluralForm.jsm, которую можно открыть только в Firefox.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47