我正在想办法在 Altva Mapforce 中验证我的输入日期,格式为“YYYYMMDD”。
我知道要验证我可以使用的年份,[0-9]{4}
但我无法找到一种将日期范围“限制”为“01-31”和月份为“01-12”的方法。请注意“01”有效,“1”无效。
有人可以提供一个正则表达式来验证这种输入吗?
通过搜索互联网,我得到了一个月的一个:([1-9]|[12]\d|3[01])
但这个在 1-31 范围内有效。我想要01-31等等。
我正在想办法在 Altva Mapforce 中验证我的输入日期,格式为“YYYYMMDD”。
我知道要验证我可以使用的年份,[0-9]{4}
但我无法找到一种将日期范围“限制”为“01-31”和月份为“01-12”的方法。请注意“01”有效,“1”无效。
有人可以提供一个正则表达式来验证这种输入吗?
通过搜索互联网,我得到了一个月的一个:([1-9]|[12]\d|3[01])
但这个在 1-31 范围内有效。我想要01-31等等。
对于 1-12 的一个月,为单个数字 1-9 添加零:
(?:0[1-9]|1[012])
对于第 1-31 天,为单个数字 1-9 添加零:
(?:0[1-9]|[12]\d|3[01])
将它们与 4 位数字放在一起以匹配年份(注意也\d{4}
可以匹配 0000 和 9999),括在单词边界\b
中以防止与前导或尾随数字/单词字符部分匹配:
\b\d{4}(?:0[1-9]|1[012])(?:0[1-9]|[12]\d|3[01])\b
一种变体,将一年的范围限制为例如 1900 - 2099
\b(?:19|20)\d{2}(?:0[1-9]|1[012])(?:0[1-9]|[12]\d|3[01])\b
但请注意,这不会验证日期本身,例如它也可以 match 20210231
。要验证日期,请使用指定的 api 来处理工具或代码中的日期。