我的问题很简单,但需要工作。我尝试了很多regex表达式来检查我的约会时间是否正常,但是尽管我确信我的regex预发布是正确的,但它总是以警觉的方式返回给我。你能检查一下我的密码吗?
validateForLongDateTime('22-03-1981')
function validateForLongDateTime(date){
var regex=new RegExp("/^\d{2}[.-/]\d{2}[.-/]\d{4}$/");
var dateOk=regex.test(date);
if(dateOk){
alert('ok');
}else{
alert('notok');
}
}发布于 2015-06-11 10:53:33
该regex至少有两个问题:
.和/),这不是这里所必需的。

“固定”正则表达式如下所示:
/^\d{2}[.\/-]\d{2}[.\/-]\d{4}$/请参阅演示
但是,您不能用它验证日期,因为它也将与37-67-5734匹配。
下面是带有分隔符字符类的我的爱意版:
^(?:(?:31([\/.-])(?:0?[13578]|1[02]))\1|(?:(?:29|30)([\/.-])(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29([\/.-])0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])([\/.-])(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$Date.parse发布于 2015-06-11 11:26:59
这样,您可以在1至31和1至12个月之间验证日期。
var regex = /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.](19|20)\d\d$/请参阅这里的演示,https://regex101.com/r/xP1bD2/1
https://stackoverflow.com/questions/30778695
复制相似问题