首页 > 解决方案 > 如何在信用卡表格中验证到期日期?

问题描述

我是 Web 开发的初学者,我必须以 MM-DD-YYYY 的格式在表格中提交我的信用卡的到期日期。我编写了一些代码来识别字符串是否采用这种特定格式。但是我想检查日期是否已经过期并且小于我们拥有的当前日期并专门检查格式中的每个元素(例如检查 MM > 12)。我希望您能帮助指导我解决这个问题任务。先感谢您 。

我的代码:

function checkdate(){

 var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/ //MM-DD-YYYY format
 var date = document.getElementById("date");
 
 //i can just check if my element is date format
 if(!date.value.match(dateReg)){
    
	alert("not a date ");
	return false;
 
 }
 
 
 return true;
 

}
	<label for "expiration-date"> Card Expiration Date </label> 
	<input type = "text" name = "exp-date" id = "date" placeholder = "MM/DD/YYYY" required>

<button type = "submit" class = "submitbtn" onclick= "return checkdate()">Submit</button> 

标签: javascripthtml

解决方案


您可以解析日期并将其与当前日期进行比较。

function checkdate(){

 var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/ //MM-DD-YYYY format
 var date = document.getElementById("date");
 
 //i can just check if my element is date format
 if(!date.value.match(dateReg)){
    
	alert("not a date ");
	return false;
 
 }else{
  const date1 = new Date(date.value);
  const date2 = new Date();
  const diffTime = (date2 - date1);
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
  
  if(diffDays > 0){
      alert("card expired");
  }else{
    alert("card valid");
  }
   
 }
 
 
 return true;
 

}
<label for "expiration-date"> Card Expiration Date </label> 
	<input type = "text" name = "exp-date" id = "date" placeholder = "MM/DD/YYYY" required>

<button type = "submit" class = "submitbtn" onclick= "return checkdate()">Submit</button>


推荐阅读