首页 > 解决方案 > 24 小时时间自动正则表达式

问题描述

这是我的代码:

let input = document.getElementById('f2f11c3');

input.addEventListener('input', addcommas, false);

function addcommas() {
  var v = document.getElementById('f2f11c3');
  var t = v.value.replace(/\D/g, '');
  var i, temp = '';
  for (i = t.length; i >= 0; i -= 2) {

    if (i == t.length) {
      temp = t.substring(i - 2, i);
    } else {
      if (t.substring(i - 2, i) != "")
        temp = t.substring(i - 2, i) + ':' + temp;
    }
    if (i < 0) {
      temp = t.substring(0, i + 2) + ':' + temp;
      break;
    }
  }
  v.value = temp;
}
<input type="text" value="" maxlength="8" id="f2f11c3" />

但是输入的数字可以大于24。你能完全适应时间格式吗?

示例:23:59:59 和另外一个 00:00:00

标签: javascripthtml

解决方案


简短的回答

  • 拿绳子
  • 拆分那个
  • 使用模运算符得到结果

例子

var time="24:70:65"; // Suppose we have this time

var parts=time.split(":");// Split the time with :

var part1=(+parts[0] % 24)
var part2=(+parts[1] % 60)
var part3=(+parts[2] % 60)

// Now to get answer in two digits you can 
part1 = ("0" + part1).slice(-2);
part2 = ("0" + part2).slice(-2);
part3 = ("0" + part3).slice(-2);

console.log(`${part1}:${part2}:${part3}`)

希望这会奏效


推荐阅读