我有一个输入字段,其中'应该'以格式输入日期(2014年11月19日下午6:20),有没有办法可以验证是否以这种特定格式输入了日期,没有任何额外的文字/然后将输入和验证的日期转换为新的Date()对象?感谢
答案 0 :(得分:3)
这样的事情可以解决问题。基本上,利用Date.parse,如果结果是NaN,那么它没有成功解析。
function getDate(dateString){
var date = Date.parse(dateString);
if(isNaN(date)) return null;
return new Date(date);
}
alert(getDate('11/19/2014 6:20 PM'));
alert(getDate('11/35/2014 6:20 PM'));
alert(getDate('11/19/2014 6:20 PM hello'));
alert(getDate('11/19/2014 6:20 PM 12345'));
答案 1 :(得分:0)
我在RegEx玩了一下,想出了以下内容。基本上,代码测试只测试日期是否为特定格式。
var date1 = "11/12/2014 6:20 PM";
var res1 = date1 + " --> " + (TestFormat(date1) ? "true" : "false");
$("#results").append(res1 + "<br>");
var date2 = "811/12/2014 6:20 PM";
var res2 = date2 + " --> " + (TestFormat(date2) ? "true" : "false");
$("#results").append(res2 + "<br>");
var date3 = "11.12/2014 6:20 PM";
var res3 = date3 + " --> " + (TestFormat(date3) ? "true" : "false");
$("#results").append(res3 + "<br>");
function TestFormat(date) {
return date.match(/\b[0-9]{1,2}[/][0-9]{1,2}[/][0-9]{4}[ ][0-9]{1,2}[:][0-9]{1,2}[ ]?(PM)|(AM)\b/g);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="results"> </div>
&#13;