验证输入字符串并将其转换为新的Date对象

时间:2014-11-16 10:14:53

标签: javascript

我有一个输入字段,其中'应该'以格式输入日期(2014年11月19日下午6:20),有没有办法可以验证是否以这种特定格式输入了日期,没有任何额外的文字/然后将输入和验证的日期转换为新的Date()对象?感谢

2 个答案:

答案 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;
&#13;
&#13;