如何在JavaScript中将mm:ss格式的timepicker字符串转换为毫秒
高效实现方案
因为输入格式固定为mm:ss,直接拆分字符串做数值计算即可,整体是O(n)的时间复杂度(n为输入字符串长度,最多5字符,性能损耗可以忽略),实现代码如下:
function convertMinSeconds(timeStr) { // 拆分分钟、秒后转数值,计算总毫秒 const [minutes, seconds] = timeStr.split(':').map(Number) return (minutes * 60 + seconds) * 1000 }
你给出的示例用例调用后返回值为210000,完全适配setTimeout的入参要求。
带合法性校验的增强版本
如果需要处理非法输入的场景,可以增加格式和数值范围校验,避免出现预期外的结果:
function convertMinSeconds(timeStr) { // 校验格式是否符合要求 if (!/^\d{1,2}:\d{2}$/.test(timeStr)) { console.warn('时间格式不合法,请使用mm:ss格式') return 0 } const [minutes, seconds] = timeStr.split(':').map(Number) // 校验秒数取值范围合法 if (seconds >= 60) { console.warn('秒数取值不能超过59') return 0 } return (minutes * 60 + seconds) * 1000 }
内容的提问来源于stack exchange,提问作者yavgz
相关产品推荐
相关产品推荐

