javascript - 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
解决方案
简短的回答
- 拿绳子
- 拆分那个
- 使用模运算符得到结果
例子
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}`)
希望这会奏效
推荐阅读
- javascript - 使用 .set() 从 JS 组件更改 Svelte 存储不适用于对象
- php - PHP中的嵌套foreach循环有简写吗?
- r - 为什么 sub(...) 函数完全扭曲了我的数据框?
- javascript - 为什么我的部分 javascript 代码没有正确运行?
- ios - How to update my xib labels from another view controller
- node.js - 编译显然从另一个站点调用模板的反应应用程序时出错
- mysql - 无法在 MySQL 中对用户进行 GRANT SELECT
- powershell - 离开标题时跳过powershell中的行
- reactjs - react.js 中的状态渲染
- python - Pandas 按自定义时间窗口分组数据