【问题标题】:Regex Persian Date validation正则表达式波斯日期验证
【发布时间】:2018-01-29 02:47:15
【问题描述】:

我想要一个 正则表达式 来验证波斯日期,例如 1396/4/31396/12/08 或其他。
换句话说,我想确保波斯日期的格式(如String)类似于以下有效格式:

1.YYYY/MM/DD

2.YYYY/MM/D

3.YYYY/M/DD

4.YYYY/M/D


有什么解决办法吗?

【问题讨论】:

    标签: regex string validation date nsregularexpression


    【解决方案1】:

    使用这个正则表达式

    ^(\\d{4})/(0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])$
    

    使用这个正则表达式:

    • 年份为 4 位数字。
    • 小于等于 12
    • 小于等于 31

    【讨论】:

    • 太好了,你同时提问和回答。
    • @ecko,我用 Q&A-style 的 stackoverflow stackoverflow.blog/2011/07/01/…
    • 如果闰日 Esfand 30 是否有效,您想如何通过正则表达式进行验证?有些月份从来没有 31 天,所以你建议的基于正则表达式的答案是不够的。
    • @meno-hochschild 正则表达式不会免除您的编码,波斯日历库可能满足您提到的所有要求,但正则表达式是定义搜索模式的字符序列。复杂的思维使问题变得更加复杂。换句话说,这个正则表达式可以是库的一部分。
    【解决方案2】:

    使用这个正则表达式

    /^[1-4]\d{3}\/((0[1-6]\/((3[0-1])|([1-2][0-9])|(0[1-9])))|((1[0-2]|(0[7-9]))\/(30|([1-2][0-9])|(0[1-9]))))$/

    jquery 中的这个正则表达式完全检查你的波斯日期模板

    年份:以 1300 或 1400 开头的 4 位数字

    Month,Day : 一年的前 6 个月计算 31 天,一年中接下来的 5 个月计算 30 天,一年的最后一个月计算 29 天

    【讨论】:

      【解决方案3】:

      我编辑@MortezaAsadi 对此的回答:

      ^(\d{4})\/(0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01])$
      

      【讨论】:

        【解决方案4】:

        这有点长,但它适用于任何地方(例如在 bash 中的grep -E):

        ^[1][1-4][0-9]{2}\/((0[1-6]\/(0[1-9]|[1-2][0-9]|3[0-1]))|(0[7-9]\/(0[1-9]|[1-2][0-9]|30))|(1[0-1]\/(0[1-9]|[1-2][0-9]|30))|(12\/(0[1-9]|[1-2][0-9])))
        

        格式为:YYYY/MM/DD

        从 1100 年到 1499 年

        Esfand 在这个表达式中是 29 天。

        【讨论】:

          【解决方案5】:

          我推荐使用这个:

          ^1[34][0-9][0-9]\/(0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01])$
          

          它支持:

          年份: 1300-1499

          月份: 1-12 和 01-12

          日期: 1-31 和 01-31

          【讨论】:

            【解决方案6】:

            我用这个
            ^(1[3-4][0-9][0-9])//$

            包括 1300/01/01 .. 1499/12/31

            这些也会出错

            1200/01/01 .. 1400/13/01 .. 1400/12/32

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-05-16
              • 2013-04-22
              • 1970-01-01
              • 1970-01-01
              • 2014-03-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多