永发信息网

求一js正则表达式验证YYYY/MM/DD格式日期。

答案:7  悬赏:40  手机版
解决时间 2021-03-27 04:00
  • 提问者网友:niaiwoma
  • 2021-03-26 22:43
求一js正则表达式验证YYYY/MM/DD格式日期。
最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-03-27 00:04
来说,条件越多的正则表达式越严格,但表述起来也越麻烦,你可以根据需要选择不同的正则表达式去判别 
只检查格式: d{4}-d{2}(-d{2})?
简单的日期判定(比如说2000-02-30仍然通过判定): d{4}-(((0[1-9])|(1[0-2])))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?
比较严格的日期判定(但还是没有闰年2月29的判定): d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|([1-2][0-9])))?)
严格的日期判定(包括闰年的判定): (d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|(1[0-9])|(2[0-8])))?))|(((([0-9]{2})((0[48])|([2468][048])|([13579][26]))|(((0[48])|([2468][048])|([3579][26]))00)))-02-29)
全部回答
  • 1楼网友:狂恋
  • 2021-03-27 03:31
/\d{4}/\d{2}/\d{2}/追问谢谢咯
  • 2楼网友:由着我着迷
  • 2021-03-27 03:19
^\d{4}\/\d{2}\/\d{2}$
  • 3楼网友:轻雾山林
  • 2021-03-27 02:31
^[12]\d{3}/(?:0[1-9]|1[0-2])/(?:0[1-9]|[12][0-9]|30|31)$
匹配1000/01/01到2999/12/31日之间的日期,具体规则如下:
1、年是4个数字,月、日是2个数字。
2、年必须在[1000,2999]内;月必须在[1-12]内,1-9月前须加0,如01;日必须在[1-31]内,1-9日前须加0,如09;
3、年、月后面必须跟/
以为判断2月天数挺麻烦,干脆都改为1-31日
  • 4楼网友:孤老序
  • 2021-03-27 01:48
var pre=new RegExp('[1-2][0-9]{3}\/[0|1]+[1-9]+\/[0-3]+[1-9]+');
var s=pre.test('2016/01/0');
console.log(s);
返回true或者false
  • 5楼网友:旧脸谱
  • 2021-03-27 01:11
[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}
  • 6楼网友:野慌
  • 2021-03-27 00:30
/\d{4}\/([[0]\d{1}]|[1][12])\/(([0][1-9])|([12]\d{1})|([3][01]))/

此正则表达式限制了月份为1到12月,日期为1到31日追问谢谢咯追答My pleasure,要是觉得满意,还请选为最佳答案,谢谢。追问再请教下这个正则表达式 /^\d{1,3}(?:\.\d{1,3})?$/ 匹配可以为整数(若为整数,整数不能超过2位),也可以是小数(整数部分不能超过2位,小数部分也不超过2位)。。。(不考虑负数)。但是像02, 03.34这样也能通过哦,如何让第一位不为0 呢,当然0.23这样是允许的?追答/^([1-9]\d|\d)\.\d{2}$/
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯