首先,我们先了解2个概念:
1、合法的日期范围:
DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间。
2、平年和闰年
地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分 46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就 是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。
1
\d{
`3}[
1-
9]|\d{
2}[
1-
9]\d|\d[
1-
9]\d{
2}|[
1-
9]\d{
3`}
大月(1、3、5、7、8、10、12月,有31天)
1
(
`0[
13578]|
1[
02])(
0[
1-
9]|[
12]\d|
3[
01`])
小月(4、6、9、11月,有30天)
1
(
`0[
469]|
11)(
0[
1-
9]|[
12]\d|
30`)
平年2月(有28天)
1
02
`(0
[1
-9
]|[1
]d|2
[0
-8
])`
闰年:
能被4整除但不能被100整除的年份
1
(\d{
`2})(
0[
48]|[
2468][
048]|[
13579][
26`])
能被400整除的年份
1
((
`0[
48]|[
2468][
048]|[
3579][
26])
00`)
闰年2月(有29天)
1
((\d{
`2})(
0[
48]|[
2468][
048]|[
13579][
26])|((
0[
48]|[
2468][
048]|[
3579][
26])
00))
0229`
校验yyyyMMdd
最终,验证YYYYMMDD的正则表达式为
1
((\d{
`3}[
1-
9]|\d{
2}[
1-
9]\d|\d[
1-
9]\d{
2}|[
1-
9]\d{
3})(((
0[
13578]|
1[
02])(
0[
1-
9]|[
12]\d|
3[
01]))|((
0[
469]|
11)(
0[
1-
9]|[
12]\d|
30))|(
02(
0[
1-
9]|[
1]\d|
2[
0-
8]))))|(((\d{
2})(
0[
48]|[
2468][
048]|[
13579][
26])|((
0[
48]|[
2468][
048]|[
3579][
26])
00))
0229`)
校验yyyy-MM-dd
精确到日即可,即年月日,格式:yyyy-MM-dd,例如:2016-12-13
1
((([
`0-
9]{
3}[
1-
9]|[
0-
9]{
2}[
1-
9][
0-
9]{
1}|[
0-
9]{
1}[
1-
9][
0-
9]{
2}|[
1-
9][
0-
9]{
3})-(((
0[
13578]|
1[
02])-(
0[
1-
9]|[
12][
0-
9]|
3[
01]))|((
0[
469]|
11)-(
0[
1-
9]|[
12][
0-
9]|
30))|(
02-(
0[
1-
9]|[
1][
0-
9]|
2[
0-
8]))))|((([
0-
9]{
2})(
0[
48]|[
2468][
048]|[
13579][
26])|((
0[
48]|[
2468][
048]|[
3579][
26])
00))-
02-
29`))
校验时分秒:格式:HHmmss
1
([
`0-
1]?[
0-
9]|
2[
0-
3])([
0-
5][
0-
9])([
0-
5][
0-
9`])
校验时分秒:格式:HH-mm-ss
1
([
`0-
1]?[
0-
9]|
2[
0-
3])-([
0-
5][
0-
9])-([
0-
5][
0-
9`])
1
((([
`0-
9]{
3}[
1-
9]|[
0-
9]{
2}[
1-
9][
0-
9]{
1}|[
0-
9]{
1}[
1-
9][
0-
9]{
2}|[
1-
9][
0-
9]{
3})(((
0[
13578]|
1[
02])(
0[
1-
9]|[
12][
0-
9]|
3[
01]))|((
0[
469]|
11)(
0[
1-
9]|[
12][
0-
9]|
30))|(
02(
0[
1-
9]|[
1][
0-
9]|
2[
0-
8]))))|((([
0-
9]{
2})(
0[
48]|[
2468][
048]|[
13579][
26])|((
0[
48]|[
2468][
048]|[
3579][
26])
00))
0229))([
0-
1]?[
0-
9]|
2[
0-
3])([
0-
5][
0-
9])([
0-
5][
0-
9`])
校验 yyyy-MM-dd HH:mm:ss(日期和时间之间有一个或多个空格)
1
((([
`0-
9]{
3}[
1-
9]|[
0-
9]{
2}[
1-
9][
0-
9]{
1}|[
0-
9]{
1}[
1-
9][
0-
9]{
2}|[
1-
9][
0-
9]{
3})-(((
0[
13578]|
1[
02])-(
0[
1-
9]|[
12][
0-
9]|
3[
01]))|((
0[
469]|
11)-(
0[
1-
9]|[
12][
0-
9]|
30))|(
02-(
0[
1-
9]|[
1][
0-
9]|
2[
0-
8]))))|((([
0-
9]{
2})(
0[
48]|[
2468][
048]|[
13579][
26])|((
0[
48]|[
2468][
048]|[
3579][
26])
00))-
02-
29))\\s+([
0-
1]?[
0-
9]|
2[
0-
3]):([
0-
5][
0-
9]):([
0-
5][
0-
9`])
卫生数据元校验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case
`"D8"`:
if
`(!value_str.matches("((\\d{3}[1-9]|\\d{2}[1-9]\\d|\\d[1-9]\\d{2}|[1-9]\\d{3})(((0[13578]|1[02])(0[1-9]|[12]\\d|3[01]))|((0[469]|11)(0[1-9]|[12]\\d|30))|(02(0[1-9]|[1]\\d|2[0-8]))))|(((\\d{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)"
)){`
valid =
`false`;
tipInfo =
`"不符合日期格式yyyyMMdd"`;
break
`;`
}
break
`;`
case
`"T6"`:
if
`(!value_str.matches("([0-1]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])"
)){`
valid =
`false`;
tipInfo =
`"不符合时间格式HHmmss"`;
break
`;`
}
break
`;`
case
`"DT15"`:
if
`(!value_str.matches("(((\\d{3}[1-9]|\\d{2}[1-9]\\d|\\d[1-9]\\d{2}|[1-9]\\d{3})(((0[13578]|1[02])(0[1-9]|[12]\\d|3[01]))|((0[469]|11)(0[1-9]|[12]\\d|30))|(02(0[1-9]|[1]\\d|2[0-8]))))|(((\\d{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))(T)(([0-1]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9]))"
)){`
valid =
`false`;
tipInfo =
`"不符合日期时间格式yyyyMMddTHHmmss"`;
break
`;`
}
原网址: 访问
创建于: 2023-08-07 11:23:15
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论