我想从字符串中获取天数、小时数和分钟数

I want to get the number of days and hours and minutes from a string

您输入 1d5h40m,它会输出 1 天 5 小时 40 分钟 - 有什么方法可以做到吗?

虽然冗长但有效

var time="1d5h40m";
const day = time.split("d")[0];
time = time.replace(day+"d", "");
const hours = time.split("h")[0];
time = time.replace(hours+"h", "");
const minutes = time.split("m")[0];
console.log(day+" day, "+hours+" hours and,"+minutes+" minutes");

用非数字拆分输入字符串并从拆分后的字符串中提取您需要的内容。这仅在输入完全符合您提到的模式时才有效。

let str = '1d5h40m';
let time = str.split(/\D/);
console.log(time[0] + 'day', time[1] + 'hour', time[2] + 'minute');

    var timestamp = "1d5h40m";
    timestamp = timestamp
      .replace("d", " day, ")
      .replace("h", " hours and ")
      .replace("m", " minutes");
    console.log(timestamp);

您可以简单地将 d h 和 m 分隔符替换为更易于阅读的字符串和格式。

这个怎么样?尽管您将不得不做更多的工作来计算天数、小时数和分钟数的复数。

const duration = '1d5h40m';
var formatted = duration
  .replace('d', ' day, ')
  .replace('h', ' hours and ')
  .replace('m', ' minutes ');
console.log(formatted);

const date = "1d5h40m".split('d').join(',').split('h').join(',').split('m').join('').split(',')

console.log(`${date[0]} day, ${date[1]} hours and ${date[2]} minutes`)