![](/img/trans.png)
[英]Regular expression validator for Date(yyyy/MM/dd) or year(yyyy)
[英]YYYY/MM/DD date format regular expression
我想使用正則表達式匹配以下C#中的這些日期格式。
我嘗試了一些正則表達式,但是它們不能匹配4種日期格式。 如
^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])
選中此選項可了解正則表達式和驗證日期的兼容性。 所以我會用
\d{4}(?:/\d{1,2}){2}
然后在C#中做任何事情來驗證匹配。 雖然可以做到,但您會花費大量時間來嘗試實現它,盡管該帖子中有一個正則表達式,據說有些擺弄會在正則表達式中驗證日期,但這看起來很嚇人。
嘗試
^\d{4}[-/.]\d{1,2}[-/.]\d{1,2}$
大括號{}
給出允許的數字。 例如, \\d{1,2}
表示一位或兩位數字。
您可能需要更多才能匹配日期。 嘗試這個:
(19|20)\d\d([-/.])(0?[1-9]|1[012])\2(0?[1-9]|[12][0-9]|3[01])
((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))\-((0[13578])|(1[02]))\-((0[1-9])|([12][0-9])|(3[01])))|((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))\-((0[469])|11)\-((0[1-9])|([12][0-9])|(30)))|(((000[48])|([0-9][0-9](([13579][26])|([2468][048])))|([0-9][1-9][02468][048])|([1-9][0-9][02468][048]))\-02\-((0[1-9])|([12][0-9])))|((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))\-02\-((0[1-9])|([1][0-9])|([2][0-8])))
這是yyyy-MM-dd
格式的正則表達式。
您可以替換-
用\\/
為yyyy/MM/dd
...
經測試工作完美。
Ajit的正則表達式接近完美,但泄漏了以12和16結尾的the年的評估。這是完美的更正
((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))-((0[13578])|(1[02]))-((0[1-9])|([12][0-9])|(3[01])))|((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))-((0[469])|11)-((0[1-9])|([12][0-9])|(30)))|(((000[48])|([0-9]0-9)|([0-9][1-9][02468][048])|([1-9][0-9][02468][048])|([0-9]0-9)|([0-9][1-9][13579][26])|([1-9][0-9][13579][26]))-02-((0[1-9])|([12][0-9])))|((([0-9][0-9][0-9][1-9])|([1-9][0-9][0-9][0-9])|([0-9][1-9][0-9][0-9])|([0-9][0-9][1-9][0-9]))-02-((0[1-9])|([1][0-9])|([2][0-8])))
嘗試這個。 這接受所有四個模式
@"\d{4}[- /.]([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.