@vanyproduction

Как получить порядковый номер месяца из строки в JS?

Есть дата "1 января 1970", есть переменная, которая всегда содержит строку месяца (обрезал пробелами), надо получить в переменную month_number порядковый номер месяца (в случае "января" month_number = 1).

===
решил проблему вот так
5aa9a87c8dea5225582642.png
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
var m = {
    "январь": 1,
    "февраль": 2,
    "март": 3,
    "апрель": 4,
    "май": 5,
    "июнь": 6,
    "июль": 7,
    "август": 8,
    "сентябрь": 9,
    "октябрь": 10,
    "ноябрь": 11,
    "декабрь": 12
};

< m["январь"]
> 1
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@daniil14056
Вот вроде так будет, хотя лучше будет сразу определиться с месяцами, на "ь" или "я" они оканчиваться будут.
/// Быстро и сразу изменить строку на лету
var str="1 января1844";
var newStr= str.replace (/\d+\s+([^ ]+)\s+\d+/, function(str,s1,s2){
     var sN="";
     if(s1[s1.length-1]==='я') 
              sN=s1.substring(0,s1.length-1)+"ь";
     else sN=s1;
    if(sN && m[sN]!="undefined")    return str.replace(s1,m[sN]); 
     else return str;
});
//  Получить номер месяца
var number;
var mouth="1 января 1844" .match(/\d+\s+([^ ]+)\s+\d+/)[1]; 
number=m[mouth];
 if(number==undefined) 
           number=m[mouth.substring(0,mouth.length-1)+"ь"];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы