我已经编写了以下代码来验证日期
var purchasedate = $("#purchasedate").val().trim();
var formattedpurchasedate = new Date(purchasedate);
if(checkValidDate(formattedpurchasedate.toDateString()) == false)
{
displayDateErrorMessage("Purchase Date");
return false;
}
function checkValidDate(dateValue)
{
var dateFormat = getDateFormat();
switch(dateFormat)
{
case "d-m-Y":
var regex = /^((0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)?[0-9]{2})$/;
if(dateValue.match(regex))
return true;
else
return false;
break;
...
..
}
现在我面临一个问题,即在输入文本框中,它的值为12/12/2016。 在函数checkValidDate中,它被视为" 2017年12月12日星期三"。结果总是返回false。
请帮忙!!!
答案 0 :(得分:0)
尝试使用:
if(!checkValidDate(formattedpurchasedate.toDateString()))
{
displayDateErrorMessage("Purchase Date");
return false;
}
答案 1 :(得分:0)
我不确定你在这里要做什么。但是如果你想验证输入中的字符串,你应该将purchaseate传递给checkValidDate()
if(checkValidDate(purchasedate) === false)
因为这一行:
var formattedpurchasedate = new Date(purchasedate);
它创建一个Date对象,其值来自输入(问题中提到的'12 / 12/2016'),然后(通过此MDN page)此处的代码返回一个可读的字符串日期:
formattedpurchasedate.toDateString()
因此,您在问题中陈述“2017年12月12日星期三”。它将始终采用该形式,因为这是日期及其toDateString方法的作用。