首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闰年正则表达式

闰年正则表达式
EN

Stack Overflow用户
提问于 2013-01-25 18:19:21
回答 1查看 638关注 0票数 0

我的任务是写一个正则表达式,它只接受闰年,第一年必须是1584,没有上限。有没有人能帮我重做这个表达式。?

代码语言:javascript
复制
(15(8[48]|9[26]))|((1[6-9]|[2-9]\d)(0[48]|[13579][26]|[2468][048]))|(([2468][048]|16|3579[26])00)

它不起作用,我做到了:

代码语言:javascript
复制
(15(8[48]|9[26]))|((1[6-9]|[2-9]\d)(0[48]|[13579][26]|[2468][048]))|(([2468][048]|16|3579[26])00)|
(
    [1-9]\d*
    (
        ([02468][048]|[13579][26])00
        |
        \d\d(0[48]|[13579][26]|[2468][048])
    )
)

当我加1的时候,它不接受19996,或者100000000或者更高,我做错了什么吗?

例如,它不适用于109400

EN

回答 1

Stack Overflow用户

发布于 2013-01-25 18:42:23

您的正则表达式匹配1584年到9996年的闰年。

要计算大于9996的闰年,只需在正则表达式的末尾添加以下备选:

代码语言:javascript
复制
|
(
    [1-9]\d*
    (
        ([02468][048]|[13579][26])00
        |
        \d\d(0[48]|[13579][26]|[2468][048])
    )
)

@user2010564 :在regex的末尾添加一行代码:

代码语言:javascript
复制
|([1-9]\d*(([02468][048]|[13579][26])00|\d\d(0[48]|[13579][26]|[2468][048])))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14519715

复制
相关文章

相似问题

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