如何在Javascript中用空格替换第三个连字符,在冒号中替换第四个连字符

时间:2019-05-02 05:52:08

标签: javascript

"2017-12-31-19-40" // Date Format

我的日期格式如上。我想将此字符串转换为正确的日期格式,例如

"2017-12-31 19:40" 

我这样尝试过:

var str = "2017-12-31-19-40";
var newStr = str.indexOf("-");
var newStr2 = str.indexOf("-", newStr+4)
var newStr3 = str[newStr2].replace(" ");
alert(newStr3);

但是它只给我连字符。我该怎么办?

3 个答案:

答案 0 :(得分:3)

在此处替换正则表达式是一个不错的选择:

var input = "2017-12-31-19-40";
console.log(input);
input = input.replace(/(\d{4}-\d{2}-\d{2})-(\d{2})-(\d{2})/, "$1 $2:$3");
console.log(input);

答案 1 :(得分:2)

干净的方法是使用moment.js库。

const date = moment('2017-12-31-19-40','YYYY-MM-DD-HH-mm');
console.log(date.format('YYYY-MM-DD HH:mm'))

答案 2 :(得分:-1)

通常,您可以创建一个函数来替换某些索引处的字符。

// String = Your string (eg.: '2017-12-31-19-40');
// subString = string you want to replace (ex: '-');
// index = which occurrence you like to replace (ex. 3);
// replaceChar = character you want to replace with (ex: ';');

function replaceString(string, subString, index, replaceChar) {
    return string.replace(
        RegExp('^(?:.*?' + subString + '){' + index + '}'),
        function(x) {
            return;
            x.replace(RegExp(subString + '$'), replaceChar);
        }
    );
}

replaceString('2017-12-31-19-40', '-', 3, ';');

这样,您可以随时随地替换任何字符。