如何从字符串中删除子字符串?

时间:2016-07-06 08:48:36

标签: javascript angularjs

我有这个字符串:

27/06/2016

或:

15/10/2005

我需要将上面的字符串转换为:

27/06/16

15/10/05

如何在Javascript中实现它?

8 个答案:

答案 0 :(得分:3)

Moment.js是用于日期操作的最佳库,它可以轻松完成:

moment('15/10/2005', 'DD/MM/YYYY').format('DD/MM/YY');

答案 1 :(得分:2)

使用正则表达式

/(?!.*\/)../
str.replace(/(?!.*\/)../,'')

答案 2 :(得分:1)

如果您确定日期有效,可以使用此功能

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;
}

答案 3 :(得分:1)

您可以使用简单的字符串操作方法:

function shortDate(str) 
{
    return str.substring(0, 6) + str.substring(8, 10);
}

var dt = shortDate('27/06/2016');
// returns 27/06/16

答案 4 :(得分:1)

您可以按照此程序进行操作。

Old_date = '27/06/2016';
New_date = Old_date.split('/');
New_date[2] = New_date[2].substring(2);
New_date = New_date.join('/');

答案 5 :(得分:0)

function reformat(dateStr)
{
dArr = dateStr.split("/");
return dArr[0]+ "/" +dArr[1]+ "/" +dArr[2].substring(2);     
}

答案 6 :(得分:0)

如果您想使用实际日期而不是字符串:

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"

答案 7 :(得分:0)

如果您确定输入将始终采用该格式,那么您可以使用简单的基于正则表达式的字符串替换在一行中执行此操作:

var output = input.replace(/..(..)$/,"$1");

当然,您可以使用\d对数字进行更具体的正则表达式,但是如果您知道输入格式是固定的.,则可以正常使用#34;删除第三个 - 来自任何字符串的第四个最后一个字符"。