删除部分字符串,但获取删除的部分作为结果

时间:2017-12-04 13:37:59

标签: javascript

所以,快速提问(在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

6 个答案:

答案 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));