由于某种原因,我的日期验证允许句号通过,但仅在日期的那部分结束时通过,例如12./10/201获得通过,但1.2 / 10/201没有通过。

这是我的代码:

var iDate = $("check_date").value;

  if(iDate.length > 0) {
    var a = iDate.split("/");
    if(isValidDate(a[0],a[1]-1,a[2]) == false){
      alert("You have entered an invalid date.");
      return false;
    }

isValidDate = function(day,month,year) {
  var dteDate;
  dteDate=new Date(year,month,day);
  return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}


有任何想法吗?

最佳答案

如评论中所述,以下是解决方案:

isValidDate = function(day,month,year) {
    var dteDate;
    dteDate=new Date(year,month,day);
    return ((day.toString()===dteDate.getDate().toString()) && (month.toString()===dteDate.getMonth().toString()) && (year.toString()===dteDate.getFullYear().toString()));
}


您还需要toString()方法,就像您比较和"12"一样,它不会相等。现在,您将12"12"进行比较,这对于有效日期是相等的。

09-25 18:37