Переформатировать строку, содержащую дату, с помощью Javascript

У меня есть следующая строка, которую мне в конечном итоге нужно иметь в формате мм/гг

    var expDate = 2016-03;
    var formatExp = expDate.replace(/-/g , "/");

Это приводит меня к 2016/03, но как я могу перейти к 03/16?


person JordanBarber    schedule 03.03.2016    source источник


Ответы (3)


одно решение без регулярного выражения:

var expDate = '2016-03';
var formatExp = expDate.split('-').reverse().join('/');
//result is 03/2016
alert('result: ' + formatExp);

var formatExpShort = expDate.substring(2).split('-').reverse().join('/');
//result is 03/16
alert('result short: ' + formatExpShort);

person Meiko Rachimow    schedule 03.03.2016
comment
Спасибо, и это очень близко, но первые две цифры года не отбрасываются? - person JordanBarber; 04.03.2016
comment
Вы человек! Благодаря тонну. через минуту отмечу как решенное - person JordanBarber; 04.03.2016

С регулярным выражением:

'2016-03'.replace(/^\d{2}(\d{2})-(\d{2})$/, '$1/$2')

person Steeve Pitis    schedule 03.03.2016
comment
это получило от меня голос, я люблю регулярное выражение, но я слишком медленный для такого решения;) - person Meiko Rachimow; 04.03.2016

Вам действительно нужно использовать RegExp?

Почему бы не создать простую функцию, которая разбивает exp Date и возвращает ее так, как вы этого хотите?

function parseDate(expDate){

     var dateArray = expDate.split('-')
     return dateArray[1] + '/' + dateArray[0].substring(2,4)
}

Функции разделения создают массив, элемент в позиции 1 — это месяц, элемент в позиции 2 — это год, к последнему вы применяете функцию подстроки, которая экстраполирует последние две цифры.

person fredmaggiowski    schedule 03.03.2016