我的代码中包含此正则表达式:
const date = new Date();const result = date.toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, '$1$3');console.log(result);//"8:58 AM"
在某些情况下(Android模拟器),它显示为“ 08:58”。我对正则表达式不好:
replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, '$1$3')
替换是什么意思?
此正则表达式删除第二组,也(:[\d]{2})
就是在您的新日期new Date().toLocaleTimeString()
示例中,这是输出时间 15:09:22的秒数(在撰写本文时)
注意
new Date().toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, '$1')
足以写hh:mm,
编辑:$3
对于基于12小时的系统(AP / PM),它特别有用,因为它会打印其余字符串(又名PM或AM),您在toLocaleTimeString()
说这是为什么它是本地的并且依赖于系统
还有其他解决方案来写hh:mm例如
const date = new Date();console.log(`${(''+date.getHours()).padStart(2, '0')}:${(''+date.getMinutes()).padStart(2, '
此正则表达式删除给定字符串中的两个特定数字。
范例:
const test = '11111:22:33 whatever';const rep = test.replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, '$1$3'); console.log(rep);