用逗号分隔日期的JavaScript正则表达式

问题描述 投票:-2回答:1

我想在JavaScript中验证用逗号分隔的日期。

日期可以是这样的单个日期:11-29-2018

或多个这样的日期:11-29-2018,12-20-2018,...

这两种情况都应该得到验证。

我找到了PHP的正则表达式,它验证了上述两种情况。但我不知道如何将其转换为JavaScript正则表达式,使其工作。

PHP正则表达式:

/^((?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])-[0-9]{4})(?:,\s*(?1))*$/
javascript regex
1个回答
0
投票

看到你是SO的新访客,我可以给你一些提示

  • 正则表达不验证日期。 02-29-2019是有效的日期格式
  • 测试日期对象是否存在相同的日,月,年。

例如,请注意下面的结果。无效的02-29-2019创建了3月1日的日期

"11-29-2018,02-29-2019".split(",").forEach(function(d) {
   var date = new Date(d);
   date.setHours(12,0,0) // make it easier to handle timezones
   var testMonth = d.split("-")[0]-1; // notice the month is 0 based
  console.log(date, date.getMonth(), testMonth===date.getMonth()); 
})  
© www.soinside.com 2019 - 2024. All rights reserved.