【发布时间】:2018-01-29 02:47:15
【问题描述】:
我想要一个 正则表达式 来验证波斯日期,例如 1396/4/3、1396/12/08 或其他。
换句话说,我想确保波斯日期的格式(如String)类似于以下有效格式:
1.YYYY/MM/DD
2.YYYY/MM/D
3.YYYY/M/DD
4.YYYY/M/D
有什么解决办法吗?
【问题讨论】:
标签: regex string validation date nsregularexpression
我想要一个 正则表达式 来验证波斯日期,例如 1396/4/3、1396/12/08 或其他。
换句话说,我想确保波斯日期的格式(如String)类似于以下有效格式:
1.YYYY/MM/DD
2.YYYY/MM/D
3.YYYY/M/DD
4.YYYY/M/D
有什么解决办法吗?
【问题讨论】:
标签: regex string validation date nsregularexpression
使用这个正则表达式:
^(\\d{4})/(0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])$
使用这个正则表达式:
【讨论】:
Q&A-style 的 stackoverflow stackoverflow.blog/2011/07/01/…
使用这个正则表达式:
/^[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 天
【讨论】:
我编辑@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 年
而 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
【讨论】: