【问题标题】:Javascript regular expression for Mmm-DD-YYYYMmm-DD-YYYY 的 Javascript 正则表达式
【发布时间】:2017-04-21 11:36:28
【问题描述】:
我正在处理与日期有关的课堂作业。
如果用户将日期指定为“Jan-12-2000”,我想检查它的模式。我尝试了很多,但无法做到。
【问题讨论】:
标签:
javascript
ajax
asp.net-mvc
【解决方案1】:
注册分类
-
[A-Z][a-z]{2} 查找大写的三个字母的单词
-
\d{2}求两位数
-
\d{4} 找四位数字
const reg = /[A-Z][a-z]{2}-\d{2}-\d{4}/
console.log(
reg.test('Jan-12-2000'), // pass
reg.test('01-10-2000') // fail
)
【解决方案2】:
首先将月份的缩写替换为对应的值:
check=string=>{
string=string.split("-");
date=[
string[2],
["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].indexOf(string[0])+1,
string[1]
];
console.log(date.join("-"));
return !isNaN(+new Date(date.join("-")));
}
这仅适用于正确的日期...
check("Jan-31-2000");//true
check("Jan-32-2000");//false
http://jsbin.com/kuyuxiwufu/edit?console