所以,快速提问(在Google中搜索了很多,但只找到了产生同样响应的答案):
代码:
var teste = '10/12/2017';
console.log(teste); //returns 10/12/2017
var teste_cut = teste.substr(6,2);
console.log(teste_cut); //returns only 20
我想要的是10/12/17
。我无法改变字符串的创建方式,因此我需要在获取字符串后更改它。是否存在执行此操作的方法,还是应该使用其他功能?我现在感觉很愚蠢,因为它看起来是一个相当明显的答案,但我想我们都得到了我们愚蠢的时刻:P
答案 0 :(得分:2)
您可以简单地重建新的string
,而不需要使用多个substr
的部分:
var test = '10/12/2017';
console.log(test);
var test_cut = test.substr(0,6)+test.substr(8,test.length);
console.log(test_cut)

答案 1 :(得分:2)
实现这一目标的一种方法是剪切字符串的开始和结束部分,然后将它们连接在一起,如下所示:
var teste = bookend('10/12/2017', 6, 7);
console.log(teste);
function bookend(str, start, end) {
return str.substr(0, start) + str.substr(end + 1);
}
另一种方法是使用正则表达式来匹配您想要保留的日期部分,然后将它们重新组合在一起:
var teste = '10/12/2017'.replace(/(\d{2}\/\d{2}\/)(\d{2})(\d{2})/, '$1$3');
console.log(teste);
答案 2 :(得分:1)
使用replace的简单正则表达式。匹配4个数字,保留最后两个。
var t = '10/12/2017';
console.log(t.replace(/\d{2}(\d{2})$/, '$1'))
答案 3 :(得分:1)
var teste = '10/12/2017'.replace(/(?=....$)../, '');
console.log(teste);
答案 4 :(得分:0)
正确的方法是处理Date对象,它将确保您始终获得正确的年份。
e % 2
答案 5 :(得分:0)
您可以将自定义功能用作 -
function formatDate(d)
{
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();
year = year.toString().substr(2,2);
month = month + 1;
month = month + "";
if (month.length == 1)
{
month = "0" + month;
}
day = day + "";
if (day.length == 1)
{
day = "0" + day;
}
return month + "/" + day + "/" + year;
}
var d = new Date('10/12/2017');
console.log(formatDate(d));