首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用分离器重复dd/mm/yyyy正则表达式

用分离器重复dd/mm/yyyy正则表达式
EN

Stack Overflow用户
提问于 2018-05-08 09:38:39
回答 1查看 103关注 0票数 1

我正在进行客户端验证,在某些情况下,我的用户可以使用日期选择器同时选择一个日期范围或几个日期。

我发现这个正则表达式是有效的简单日期:

代码语言:javascript
运行
复制
Date regex 

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

这一种允许多种格式:

dd/mm/yyyy

德姆-耶伊

dd.mm.yyyy

在第一种情况下(日期范围),我使用‘-’作为分隔符,并希望使用regex检查选定的范围:

代码语言:javascript
运行
复制
01/02/2018 - 02/03/2018

我工作了一段时间,我可以用一个更简单的正则表达式来完成这个任务:

代码语言:javascript
运行
复制
^((\d{2})(?:\ \-\ |)){2}$

on this string

02 - 03

当我用日期regex替换第一部分(\d{2})并测试显示的日期范围(01/02/2018 - 02/03/2018)时,正则表达式不匹配。

在第二种情况下(选择了几个日期),我使用',‘作为分隔符,我正在寻找一个贪婪的量化解决方案。

你知不知道?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-08 10:57:52

下面是使用分隔符逗号或减号选择范围的正则表达式

代码语言:javascript
运行
复制
([0-2][0-9]|[3][0-1])(\/|-|\.)([0][0-9]|[1][0-2])(\/|-|\.)(\d{4})\s(-|,)\s([0-2][0-9]|[3][0-1])(\/|-|\.)([0][0-9]|[1][0-2])(\/|-|\.)(\d{4})

它在许多情况下起作用,如下所示

输入

代码语言:javascript
运行
复制
# dd/mm/yyyy - dd/mm/yyyy   01/02/2018 - 02/03/2018   01/02/2018 , 02/03/2018

# dd-mm-yyyy - dd-mm-yyyy   01-02-2018 - 02-03-2018   01-02-2018 , 02-03-2018

# dd.mm.yyyy - dd.mm.yyyy   01.02.2018 - 02.03.2018   01.02.2018 , 02.03.2018

输出

代码语言:javascript
运行
复制
# 01/02/2018 - 02/03/2018   01/02/2018 , 02/03/2018

# 01-02-2018 - 02-03-2018   01-02-2018 , 02-03-2018

# 01.02.2018 - 02.03.2018   01.02.2018 , 02.03.2018
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50230514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档