如何验证范围之间的有效月份/年份
How to validate a valid month / year between a range
如何验证用户按照 mm/yyyy
格式输入的日期以及 yyyy
范围是从 2002
到 2030
。所以月份应该在1
到12
之间,2002
和2030
以下的所有年份都无效。这是我当前的正则表达式:
^(0[1-9]|1[012])[- /.](20)\d\d$
您可以使用 checkdate() 函数验证公历日期;然而,这要求您采用 DateTime/Date 格式,这有助于确保人们不会做类似这样的事情:35/02/2014
但是,这样的事情可行吗?
([0-2][0-9]|31)\/(0[1-9]|1[0-2])\/(200[2-9]|20[1-2][0-9]|2030)
然后将字符串转换为 DateTime 对象,然后 运行 在其上使用 checkdate() 函数来检查它是否为公历?
由于您被迫使用正则表达式,因此您在这里:
^(0[1-9]|1[012])[- /.](20(?:0[2-9]|[12]\d|30))$
它的工作方式类似于您编写的月份验证模式 - 0[2-9]
匹配 2002 年到 2009 年,[12]\d
匹配 2010 年到 2029 年,30
匹配 2030 年。
^(0[1-9]|(1[0-2]+)+)\/(20(0[2-9]|([1-2][0-9])|30))$
你可以使用这个模式。你也可以在这里测试它。 http://regexr.com/3a60s
细分:
^(
0[1-9]|(1[0-2]+)+)
\/
(20(0[2-9]|([1-2][0-9])|30)
)$
解释:
- 匹配 01 到 09,或 10 到 12。
- 匹配你的“
/
”
匹配从 20 开始的 3 年集。
- 2002 年至 2009 年
0[2-9]
- 或 2010 年至 2029 年
[1-2][0-9]
- 或2030,与文字
30
匹配
你可以按模式检查..这样
<input type="text" pattern="^(0[1-9]|1[012])[- /.](20(?:0[2-9]|[12]\d|30))$" />
如何验证用户按照 mm/yyyy
格式输入的日期以及 yyyy
范围是从 2002
到 2030
。所以月份应该在1
到12
之间,2002
和2030
以下的所有年份都无效。这是我当前的正则表达式:
^(0[1-9]|1[012])[- /.](20)\d\d$
您可以使用 checkdate() 函数验证公历日期;然而,这要求您采用 DateTime/Date 格式,这有助于确保人们不会做类似这样的事情:35/02/2014
但是,这样的事情可行吗?
([0-2][0-9]|31)\/(0[1-9]|1[0-2])\/(200[2-9]|20[1-2][0-9]|2030)
然后将字符串转换为 DateTime 对象,然后 运行 在其上使用 checkdate() 函数来检查它是否为公历?
由于您被迫使用正则表达式,因此您在这里:
^(0[1-9]|1[012])[- /.](20(?:0[2-9]|[12]\d|30))$
它的工作方式类似于您编写的月份验证模式 - 0[2-9]
匹配 2002 年到 2009 年,[12]\d
匹配 2010 年到 2029 年,30
匹配 2030 年。
^(0[1-9]|(1[0-2]+)+)\/(20(0[2-9]|([1-2][0-9])|30))$
你可以使用这个模式。你也可以在这里测试它。 http://regexr.com/3a60s
细分:
^(
0[1-9]|(1[0-2]+)+)
\/
(20(0[2-9]|([1-2][0-9])|30)
)$
解释:
- 匹配 01 到 09,或 10 到 12。
- 匹配你的“
/
” 匹配从 20 开始的 3 年集。
- 2002 年至 2009 年
0[2-9]
- 或 2010 年至 2029 年
[1-2][0-9]
- 或2030,与文字
30
匹配
- 2002 年至 2009 年
你可以按模式检查..这样
<input type="text" pattern="^(0[1-9]|1[012])[- /.](20(?:0[2-9]|[12]\d|30))$" />