Kiểm tra ngày hợp lệ JavaScript

Có thể bạn đã quen thuộc với Đối tượng ngày tháng. Vì vậy, chỉ cần tóm tắt rất nhanh, bạn có thể gọi new Date()(Tài liệu MDN)

Nếu đó không phải là một ngày hợp lệ, nó sẽ trả về Invalid Date — đó không phải là String, nhưng cũng không phải là Số, vì vậy điều đó tốt, bạn có thể kiểm tra loại ____

Vấn đề là nó sẽ lấy các ngày như “2017–02–30” và chuyển thành “2017–03–01”. Javascript thông minh?

+tháng??

đó là. Nó sẽ cố gắng chuyển đổi bất cứ thứ gì xuất hiện sau nó thành một số và đôi khi sẽ chỉ nói đó là NaN

Vì vậy, đối với (+month -1), chúng tôi đảm bảo rằng month là một số và giảm đi 1 đơn vị, với điều kiện là new Date bắt đầu tính tháng từ 0

Hơn nữa, nếu đối tượng Date trả về Invalid Date, thì nó vẫn là đối tượng và điều kiện if sẽ là kết quả trung thực

Mặt khác, Invalid Date0 sẽ không. Tại thời điểm này, tôi đang chuyển đổi nó thành giá trị Invalid Date1 chỉ vì tôi thấy nó dễ hiểu hơn

phần khó khăn

Xem xét Đối tượng ngày không cho tôi biết “2017–02–30” là ngày không chính xác, chúng tôi chỉ cần kiểm tra xem ngày mà nó cho biết hiện tại có giống với ngày chúng tôi đã nói hay không

ngày. getDate() == ngày

Dễ như ăn bánh

Tôi quyết định viết bài này vì bạn google về nó, bạn sẽ tìm thấy một số chức năng với hơn 10 dòng và các thử nghiệm khá thủ công. Những cái đó trông không sạch sẽ trên mã

Điều rất quan trọng là xác thực dữ liệu do người dùng cung cấp thông qua biểu mẫu trước khi bạn xử lý dữ liệu đó. Trong số các loại xác thực dữ liệu khác nhau, xác thực ngày là một

Trong hướng dẫn này, chúng tôi đã thảo luận về cách bạn có thể thực hiện xác thực ngày JavaScript trong
1. định dạng dd/mm/yyyy hoặc dd-mm-yyyy
2. định dạng mm/dd/yyyy hoặc mm-dd-yyyy

Trong các ví dụ sau, một hàm JavaScript được sử dụng để kiểm tra định dạng ngày hợp lệ đối với một biểu thức chính quy. Sau đó, chúng tôi lấy từng phần của chuỗi do người dùng cung cấp (i. e. dd, mm và yyyy) và kiểm tra xem dd là ngày hợp lệ, mm là tháng hợp lệ hay yyyy là năm hợp lệ. Chúng tôi cũng đã kiểm tra yếu tố năm nhuận cho tháng Hai. Chúng tôi đã sử dụng ký tự "/" và "-" làm dấu phân cách trong định dạng ngày nhưng bạn có thể tự do thay đổi dấu phân cách đó theo cách bạn muốn

Xác thực định dạng dd/mm/yyyy hoặc dd-mm-yyyy

Mã HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JavaScript form validation - checking date</title>
<link rel='stylesheet' href='form-style.css' type='text/css' />   
</head>
<body onload='document.form1.text1.focus()'> <div class="mail"> <h2>Input a valid date [dd/mm/yyyy or dd-mm-yyyy format]</h2> <form name="form1" action="#"> <ul> <li><input type='text' name='text1'/></li> <li>&nbsp;</li> <li class="submit"><input type="submit" name="submit" value="Submit" onclick="validatedate(document.form1.text1)"/></li> <li>&nbsp;</li> </ul> </form> </div> <script src="ddmmyyyy-validation.js"></script> </body> </html>

Mã JavaScript

function validatedate(inputText)
  {
  var dateformat = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;
  // Match the date format through regular expression
  if(inputText.value.match(dateformat))
  {
  document.form1.text1.focus();
  //Test which seperator is used '/' or '-'
  var opera1 = inputText.value.split('/');
  var opera2 = inputText.value.split('-');
  lopera1 = opera1.length;
  lopera2 = opera2.length;
  // Extract the string into month, date and year
  if (lopera1>1)
  {
  var pdate = inputText.value.split('/');
  }
  else if (lopera2>1)
  {
  var pdate = inputText.value.split('-');
  }
  var dd = parseInt(pdate[0]);
  var mm  = parseInt(pdate[1]);
  var yy = parseInt(pdate[2]);
  // Create list of days of a month [assume there is no leap year by default]
  var ListofDays = [31,28,31,30,31,30,31,31,30,31,30,31];
  if (mm==1 || mm>2)
  {
  if (dd>ListofDays[mm-1])
  {
  alert('Invalid date format!');
  return false;
  }
  }
  if (mm==2)
  {
  var lyear = false;
  if ( (!(yy % 4) && yy % 100) || !(yy % 400)) 
  {
  lyear = true;
  }
  if ((lyear==false) && (dd>=29))
  {
  alert('Invalid date format!');
  return false;
  }
  if ((lyear==true) && (dd>29))
  {
  alert('Invalid date format!');
  return false;
  }
  }
  }
  else
  {
  alert("Invalid date format!");
  document.form1.text1.focus();
  return false;
  }
  }

Sơ đồ

Kiểm tra ngày hợp lệ JavaScript

Mã CSS

li {list-style-type: none;
font-size: 16pt;
}
.mail {
margin: auto;
padding-top: 10px;
padding-bottom: 10px;
width: 400px;
background : #D8F1F8;
border: 1px soild silver;
}
.mail h2 {
margin-left: 38px;
}
input {
font-size: 20pt;
}
input:focus, textarea:focus{
background-color: lightyellow;
}
input submit {
font-size: 12pt;
}
.rq {
color: #FF0000;
font-size: 10pt;
}

Xem ví dụ trên trình duyệt

Xác thực định dạng mm/dd/yyyy hoặc mm-dd-yyyy

Mã HTML

<!DOCTYPE html>
<html lang="en">
<head> <meta charset="utf-8"> <title>JavaScript form validation - checking date [mm/dd/yyyy or mm-dd-yyyy format]</title> <link rel='stylesheet' href='form-style.css' type='text/css' /> </head> <body onload='document.form1.text1.focus()'> <div class="mail"> <h2>Input a valid date [mm/dd/yyyy or mm-dd-yyyy format]</h2> <form name="form1" action="#"> <ul> <li><input type='text' name='text1'/></li> <li>&nbsp;</li> <li class="submit"><input type="submit" name="submit" value="Submit" onclick="validatedate(document.form1.text1)"/></li> <li>&nbsp;</li> </ul> </form> </div> <script src="mmddyyyy-validation.js"></script> </body> </html>

Mã JavaScript

function validatedate(inputText)
  {
  var dateformat = /^(0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])[\/\-]\d{4}$/;
  // Match the date format through regular expression
  if(inputText.value.match(dateformat))
  {
  document.form1.text1.focus();
  //Test which seperator is used '/' or '-'
  var opera1 = inputText.value.split('/');
  var opera2 = inputText.value.split('-');
  lopera1 = opera1.length;
  lopera2 = opera2.length;
  // Extract the string into month, date and year
  if (lopera1>1)
  {
  var pdate = inputText.value.split('/');
  }
  else if (lopera2>1)
  {
  var pdate = inputText.value.split('-');
  }
  var mm  = parseInt(pdate[0]);
  var dd = parseInt(pdate[1]);
  var yy = parseInt(pdate[2]);
  // Create list of days of a month [assume there is no leap year by default]
  var ListofDays = [31,28,31,30,31,30,31,31,30,31,30,31];
  if (mm==1 || mm>2)
  {
  if (dd>ListofDays[mm-1])
  {
  alert('Invalid date format!');
  return false;
  }
  }
  if (mm==2)
  {
  var lyear = false;
  if ( (!(yy % 4) && yy % 100) || !(yy % 400)) 
  {
  lyear = true;
  }
  if ((lyear==false) && (dd>=29))
  {
  alert('Invalid date format!');
  return false;
  }
  if ((lyear==true) && (dd>29))
  {
  alert('Invalid date format!');
  return false;
  }
  }
  }
  else
  {
  alert("Invalid date format!");
  document.form1.text1.focus();
  return false;
  }
  }

Ghi chú. Mã CSS tương tự cho cả hai ví dụ

Xem ví dụ trong trình duyệt

file_download Tải xuống mã xác thực từ đây

Xác thực JavaScript khác

  • Kiểm tra không trống
  • Kiểm tra tất cả các chữ cái
  • Kiểm tra tất cả các số
  • Kiểm tra số nổi
  • Kiểm tra chữ và số
  • Kiểm tra độ dài chuỗi
  • Xác thực email
  • Xác thực ngày
  • Mẫu đơn đăng ký
  • Không có điện thoại. Thẩm định
  • thẻ tín dụng số. Thẩm định
  • Xác thực mật khẩu
  • Xác thực địa chỉ IP

Trước. JavaScript. Biểu mẫu HTML - xác thực email
Kế tiếp. Xác thực biểu mẫu JavaScript bằng Biểu mẫu đăng ký mẫu

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

JavaScript. Lời khuyên trong ngày

Phá hủy với bí danh

Cú pháp gán phá hủy là một biểu thức JavaScript cho phép giải nén các giá trị từ mảng hoặc thuộc tính từ các đối tượng thành các biến riêng biệt. Thay vì gắn bó với biến đối tượng hiện có, chúng ta có thể đổi tên chúng theo sở thích của riêng mình

Làm cách nào để kiểm tra ngày hợp lệ JavaScript?

JavaScript Ngày. phương thức parse() dùng để kiểm tra xem ngày đã cho là hợp lệ hay không hợp lệ. Hàm trả về NaN nếu ngày đã cho không hợp lệ hoặc nếu không thì nó trả về số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970. Bằng cách này, chúng tôi có thể kiểm tra tính xác thực của ngày đã cho.

Làm cách nào để kiểm tra tính hợp lệ của một ngày?

Cho trước một ngày, kiểm tra xem ngày đó có hợp lệ hay không . Có thể giả định rằng ngày đã cho nằm trong khoảng từ 01/01/1800 đến 31/12/9999. ví dụ. Đầu vào. d = 10, m = 12, y = 2000 Đầu ra. Có Ngày đã cho 12/10/2000 là hợp lệ. d = 30, m = 2, y = 2000 Đầu ra. Không Ngày đã cho 30/2/2000 không hợp lệ.

Làm cách nào để kiểm tra đối tượng ngày trong JavaScript?

Có thể kiểm tra tính hợp lệ của ngày trong đối tượng Date bằng . hàm isNan() . Nó trả về true nếu ngày không hợp lệ.

Ngày không hợp lệ trong JavaScript là gì?

Ngoại lệ JavaScript "ngày không hợp lệ" xảy ra khi một chuỗi dẫn đến ngày không hợp lệ đã được cung cấp cho Ngày hoặc Ngày. phân tích cú pháp() .