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

Javascript 如何从字符串中删除子字符串?,javascript,angularjs,Javascript,Angularjs,我有这个字符串: 27/06/2016 或: 我需要将上面的字符串转换为: 27/06/16 或 如何在Javascript中实现它?如果您确定日期有效,则可以使用此函数 function formatDate (input) { var datePart = input.match(/\d+/g); year = datePart[2].substring(2); // get only two digits month = datePart[1]; day

我有这个字符串:

27/06/2016
或:

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

27/06/16


如何在Javascript中实现它?

如果您确定日期有效,则可以使用此函数

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

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

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

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

您可以按照以下步骤操作

Old_date = '27/06/2016';
New_date = Old_date.split('/');
New_date[2] = New_date[2].substring(2);
New_date = New_date.join('/');
是用于日期操作的最佳库,它可以轻松地执行以下操作:

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

如果要处理真实日期而不是字符串,请执行以下操作:

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"

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

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

当然,对于数字,您可以使用
\d
使正则表达式更加具体,但是如果您知道输入格式是固定的,那么
可以很好地执行一般性的“从任何字符串中删除最后三个和最后四个字符”。

使用正则表达式

/(?!.*\/)../


我正在输入一个几乎完全相同的解决方案,这时它出现了!这真的很好,当你需要经常处理时间,并且没有太多的js文件时,因为给你的页面增加额外的20kb的负载是一件有点沉重的事情。干杯,这仍然是一个很好的解决方案。这不会起作用,因为(a)JS日期使用零基月,以及(b)OP需要两位数的日和月。(您还应该检查
.substr()
的参数如何工作。)这不起作用。尝试10/12/2016或二月的任何一天。考虑添加一些评论到你的答案。
formatDate(parseDate('27/05/2016')); // returns "27/5/16"
var output = input.replace(/..(..)$/,"$1");
/(?!.*\/)../
str.replace(/(?!.*\/)../,'')