24小时制时间格式(支持填写年月日),支持填时间段,两个时间点之间用“~”符号连接,对此作出js的限制
时间: 2024-04-13 17:30:46 浏览: 99
你可以使用正则表达式来验证输入是否符合24小时制时间格式,并支持填写年月日和时间段。以下是一个示例的 JavaScript 代码,可以验证输入是否符合你描述的要求:
```javascript
function validateTime(input) {
// 正则表达式:支持填写年月日,时间段用 "~" 符号连接,时间格式为24小时制
const regex = /^(\d{4}年\d{1,2}月\d{1,2}日)?((?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)(~(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)?$/;
return regex.test(input);
}
// 测试
console.log(validateTime("12:34")); // true
console.log(validateTime("23:59~00:01")); // true
console.log(validateTime("2022年12月31日23:59~2023年01月01日00:01")); // true
console.log(validateTime("24:00")); // false,小时超过24
console.log(validateTime("00:00~24:00")); // false,小时超过24
console.log(validateTime("2022年12月31日23:59~2023年01月01日00:01~2024年02月02日01:02")); // false,只支持两个时间段
```
该函数 `validateTime` 使用了一个正则表达式 `/^(\d{4}年\d{1,2}月\d{1,2}日)?((?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)(~(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)?$/` 来验证输入。这个正则表达式的含义是:
- `^` 表示匹配字符串的开头
- `(\d{4}年\d{1,2}月\d{1,2}日)?` 表示可选的年月日部分,格式为四位年份、一到两位月份、一到两位日期和 "年月日"
- `((?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)` 表示24小时制的时间格式,包括小时和分钟,可选的秒钟
- `(~(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?)?` 表示可选的时间段部分,用 "~" 符号连接两个时间点
- `$` 表示匹配字符串的结尾
如果输入符合要求,`validateTime` 函数将返回 `true`,否则返回 `false`。
请注意,这只是一个简单的限制示例,你可能需要根据具体需求进行调整。例如,你可以进一步添加对年、月、日的范围限制。