首页 新闻 赞助 找找看

日期正则表达式

0
[已解决问题] 解决于 2013-07-02 11:41

日期正则表达式 yyyy-MM-dd,yyyy/MM/dd,MM/dd/yyyy,一个正则表达式可以验证这三种

还有一种格式是yyyyMMdd

< >
分享
最佳答案
0
var a = '2011-12-21';
var b = '2011/01/21';
var c = '20141230';
var d = '12/21/2011';
function test(s){
var r1 = /^(\d{2})\/(\d{2})\/(\d{4})$/;
if(r1.test(s)){
s = RegExp.$3+'-'+RegExp.$1+'-'+RegExp.$2;
return Boolean(+new Date(s));
}else{
var r1 = /^(\d{4})([-/]?)(\d{2})\2(\d{2})$/;
if(r1.test(s)){
s = RegExp.$1+'-'+RegExp.$3+'-'+RegExp.$4;
return Boolean(+new Date(s));
}else{
return false;
}
}
}
console.log(test(a));
console.log(test(b));
console.log(test(c));
console.log(test(d));
奖励园豆:5
积跬步 | 菜鸟二级 |园豆:214 | 2013-06-17 23:23
其他回答(3)
0

这个并非标准正则,按照语义,应该是支持三种。测试一下就知道了。

仰光 | 园豆:249 (菜鸟二级) | 2013-05-31 11:56
0

这个要是用正则的话反而麻烦了,还是判断截取字符串再判断吧

TiestoRay | 园豆:687 (小虾三级) | 2013-05-31 13:54
0

仅供参考,希望对你有所帮助。

static public boolean testDateFormat(String dateFormat){
Pattern p = Pattern.compile("\\d{4}[-/]?\\d{2}[-/]?\\d{2}||\\d{2}/\\d{2}/\\d{4}");
Matcher m = p.matcher(dateFormat);
return m.matches();
}

迷失的java | 园豆:154 (初学一级) | 2013-06-14 20:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册