如何用JavaScript/jQuery将时间毫秒位从多位数截断为3位?
JavaScript/jQuery 时间格式转换:保留3位毫秒数
刚好之前做项目时碰到过一模一样的需求,用正则表达式就能轻松搞定,不管是6位还是4位的毫秒后缀,都能精准截断到3位,分享给你:
核心实现方案(原生JavaScript)
写个简单的工具函数,一行正则替换就搞定:
function trimTimeMs(timeStr) { // 捕获时分秒+前3位毫秒,替换掉后面所有多余的数字 return timeStr.replace(/(\d{2}:\d{2}\.\d{3})\d*/, '$1'); } // 测试几个场景 console.log(trimTimeMs('02:04.887004')); // 输出 "02:04.887" console.log(trimTimeMs('02:04.8348')); // 输出 "02:04.834" console.log(trimTimeMs('15:22.45')); // 毫秒不足3位时,原样返回:"15:22.45"
正则逻辑拆解
(\d{2}:\d{2}\.\d{3}):这是一个捕获组,专门匹配我们需要保留的核心部分——两位分钟:两位秒.三位毫秒\d*:匹配捕获组后面的任意数量数字(也就是多余的毫秒位)- 替换时用
$1引用捕获到的内容,相当于直接把多余的毫秒位删掉,只保留前3位
jQuery 场景下的应用
如果是要处理页面上DOM元素里的时间文本,直接结合jQuery的text()方法就行:
// 假设所有需要转换的时间都在class为.time-item的元素里 $('.time-item').text(function(idx, originalText) { return originalText.replace(/(\d{2}:\d{2}\.\d{3})\d*/, '$1'); });
这个方案的好处是简洁高效,不需要复杂的字符串拆分拼接,正则一步到位,完全适配你提到的两种时间格式~
内容的提问来源于stack exchange,提问作者pepqq
相关产品推荐
相关产品推荐

