0

我正在想办法在 Altva Mapforce 中验证我的输入日期,格式为“YYYYMMDD”。

我知道要验证我可以使用的年份,[0-9]{4}但我无法找到一种将日期范围“限制”为“01-31”和月份为“01-12”的方法。请注意“01”有效,“1”无效。

有人可以提供一个正则表达式来验证这种输入吗?

通过搜索互联网,我得到了一个月的一个:([1-9]|[12]\d|3[01])但这个在 1-31 范围内有效。我想要01-31等等。

4

1 回答 1

1

对于 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 来处理工具或代码中的日期。

于 2021-10-12T18:29:03.800 回答