簡體   English   中英

Javascript / angularjs中信用卡到期日驗證的正則表達式?

[英]Regular expression for Credit Card Expiry date validation in Javascript/angularjs?

我有一個文本字段,當我在該文本字段中輸入信用卡有效期(mm / yy)時,我使用Javascript驗證了該日期。 我嘗試了以下正則表達式:

var s = "11/12";                                                        
/^(0[1-9]|1[0-2])\/\d{2}$/.test(s);

在上面的表達式中,月份驗證有效,但一年需要00、12、17。 如何驗證年份?

如果要保證正確性,那么如果使用JavaScript的Date API,則可以進行更正確的日期驗證。 例如:

 function validateExpiry (input) { // ensure basic format is correct if (input.match(/^(0\\d|1[0-2])\\/\\d{2}$/)) { const {0: month, 1: year} = input.split("/"); // get midnight of first day of the next month const expiry = new Date("20"+year, month); const current = new Date(); return expiry.getTime() > current.getTime(); } else return false; } console.log("01/23", validateExpiry("01/23")); console.log("01/18", validateExpiry("04/18")); console.log("05/18", validateExpiry("05/18")); console.log("05.18", validateExpiry("05.18")); console.log("invalid", validateExpiry("invalid")); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM