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

Verify and convert input string to new Date object

本文关键字:Date 对象 转换 字符 输入 字符串 串并 验证      更新时间:2023-09-26

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

这样的事情就可以了。基本上,利用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'));
我玩

了一下正则表达式,并想出了以下内容。基本上,代码测试只是测试日期是否采用特定格式。

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);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="results"> </div>