У меня есть эта строка:Как удалить строку из строки?
27/06/2016
или:
15/10/2005
Мне нужно преобразовать строку выше этого:
27/06/16
или
15/10/05
Как ча n Я реализую его в Javascript?
У меня есть эта строка:Как удалить строку из строки?
27/06/2016
или:
15/10/2005
Мне нужно преобразовать строку выше этого:
27/06/16
или
15/10/05
Как ча n Я реализую его в Javascript?
Вы можете использовать простые методы работы со строками:
function shortDate(str)
{
return str.substring(0, 6) + str.substring(8, 10);
}
var dt = shortDate('27/06/2016');
// returns 27/06/16
Я был на полпути, набрав почти идентичное решение, когда это появилось! – CompanyDroneFromSector7G
уверен, спасибо брату;)) –
Если вы уверены, что дата является действительным вы можете использовать эту функцию
function formatDate (input) {
var datePart = input.match(/\d+/g);
year = datePart[2].substring(2); // get only two digits
month = datePart[1];
day = datePart[0];
return day+'/'+month+'/'+year;
}
Вы можете следить за этой процедурой.
Old_date = '27/06/2016';
New_date = Old_date.split('/');
New_date[2] = New_date[2].substring(2);
New_date = New_date.join('/');
Moment.js это лучшая библиотека для использования даты манипуляции, он делает это легко:
moment('15/10/2005', 'DD/MM/YYYY').format('DD/MM/YY');
это действительно хорошо, когда вам нужно время на манипуляции часто, и у вас не так много js-файлов, потому что добавление дополнительного 20kb-загрузки на вашу страницу несколько тяжелое.cheers –
и все еще это прекрасное решение –
function reformat(dateStr)
{
dArr = dateStr.split("/");
return dArr[0]+ "/" +dArr[1]+ "/" +dArr[2].substring(2);
}
Подумайте о добавлении комментария к своему ответу. – HDJEMAI
Если вы хотите работать на реальных дат вместо строк:
function parseDate(input) {
var parts = input.match(/(\d+)/g);
return new Date(parts[2], parts[1], parts[0]);
}
function formatDate(date) {
var day = date.getDate();
var month = date.getMonth();
var year = date.getFullYear().toString().substr(2);
return day + '/' + month + '/' + year;
}
, а затем просто:
formatDate(parseDate('27/05/2016')); // returns "27/5/16"
Это не сработает, потому что (а) даты JS используют месяцы на основе нуля и (b) OP хочет двузначный день и месяц. (Также вы должны проверить, как работают аргументы '.substr()'). – nnnnnn
Если вы уверены, что вход всегда будет именно в таком формате, то вы можете сделать это в одной строке с простой строкой регулярных выражений на основе замены:
var output = input.replace(/..(..)$/,"$1");
Конечно, вы могли бы сделать регулярное выражение более специфический с \d
для цифр, но опять же, если вы знаете, что формат ввода исправлен .
отлично работает, чтобы сделать общий «удалить символы третьего и четвертого последних из любой строки».
Использование регулярных выражений
/(?!.*\/)../
str.replace(/(?!.*\/)../,'')
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_substring –