gpt4 book ai didi

javascript - 为什么此正则表达式 "^(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/(19[0-9]{2}|20[0-1][0-7])$"对于 16/06/2008、21/02/2008 等日期会失败......?

转载 作者:行者123 更新时间:2023-11-30 07:12:57 26 4
gpt4 key购买 nike

我试图使用这个匹配从 1900 年到 2017 年的 dd/mm/yyyy 格式的日期

^(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/(19[0-9]{2}|20[0-1][0-7])$

正则表达式,但我观察到此正则表达式在 16/06/2008 和 21/02/2008 等日期失败。
为了确保此正则表达式的所有部分是否正常工作,我尝试了它的所有三个部分,如 ^(0[1-9]|1[0-9]|2[0-9]|3[ 01])$ , ^(0[1-9]|1[012])$^(19[0-9]{2}|20[0 -1][0-7])$ 在不同的日期、月份和年份,但我发现这些工作正常,但是当我结合运行它时,我得到了与 16/06 这样的日期相同的意外结果/2008.

另外我想告诉你我正在 javascript 中使用这个正则表达式:

var patt = new RegExp("^(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/(19[0-9]{2}|20[0-1][0-7])$");
var res = patt.exec(datestring);

对于像 16/06/2008 这样的日期,res 的计算结果为 null。

请让我知道我哪里出错了?为了解决这个问题,我已经阅读了一些正则表达式教程和之前提出的问题,但我没有找到任何相关答案可以告诉我为什么这个正则表达式在某些特定日期失败。请帮忙。

最佳答案

因为2008不匹配20[0-1][0-7]

关于javascript - 为什么此正则表达式 "^(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/(19[0-9]{2}|20[0-1][0-7])$"对于 16/06/2008、21/02/2008 等日期会失败......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46204916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com