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
使正则表达式更加具体,但是如果您知道输入格式是固定的,那么
可以很好地执行一般性的“从任何字符串中删除最后三个和最后四个字符”。使用正则表达式
/(?!.*\/)../
.substr()
的参数如何工作。)这不起作用。尝试10/12/2016或二月的任何一天。考虑添加一些评论到你的答案。
formatDate(parseDate('27/05/2016')); // returns "27/5/16"
var output = input.replace(/..(..)$/,"$1");
/(?!.*\/)../
str.replace(/(?!.*\/)../,'')