node.js - 文字列を時間形式に解析する JavaScript
私は次の時間形式 2h 34m 22s を持っており、次のコードを使って 02:34:22 として解析しています:
const splitterArray = '2h 34m 22s'.split(' ');
let h = '00', m = '00', s = '00';
splitterArray.forEach(val => {
if (val.includes('h')) {
h = val.replace('h', '');
} else if (val.includes('m')) {
m = val.replace('m', '');
}
else if (val.includes('s')) {
s = val.replace('s', '');
}
});
console.log(`${h}:${m}:${s}`);
これは、分と秒だけの場合、または時間と秒だけの場合、または時間と分だけの場合も処理します。
ライブラリなど、より良い方法があるかどうか確認しているだけです(おそらく日も受け入れられるように)。
回答 #1
希望する順序で一致させ、コロンで結果を得ることができます。
function convert(string) {
return Array
.from('hms', p => (string.match(new RegExp(`\\d+(?=${p})`))?.[0] || '') .padStart(2, '0'))
.join(':');
}
console.log(convert('2h 34m 22s'));回答 #2
私は moment ライブラリを使用することをお勧めします。それは、すべての時間のフォーマットや解析のニーズに対応する多くの例とドキュメントがあります:
https://momentjs.com/
