正则表达式波斯日期验证

Regex Persian Date validation

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

1.YYYY/MM/DD

2.YYYY/MM/D

3.YYYY/M/DD

4.YYYY/M/D


有什么解决办法吗?

使用这个正则表达式:

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

使用这个正则表达式:

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

使用这个正则表达式

/^[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 中的这个正则表达式完全检查你的波斯语日期模板

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

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

我编辑@MortezaAsadi 对此的回答:

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

这有点长,但它适用于任何地方(例如在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 年

and Esfand 在此表达式中为 29 天。

我推荐使用这个:

^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

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

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

这些也会出错

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