2013-12-20 33 views
3

當我調用Stripe.card.validateExpiry("00","2014")時,它在使用stripe.js時返回true。00是信用卡的有效月份嗎?

Stripe.card.validateExpiry(00,2014) 

返回false。

我只是要傳入整數,但文檔說你也可以傳入字符串。這裏的交易是什麼?

Stripe.card.validateExpiry('02', '15')  // false -- * WHY is this false? Feb 2015. 
Stripe.card.validateExpiry('02', '10')  // false -- makes sense 
Stripe.card.validateExpiry('02', '2020') // true -- makes sense 
Stripe.card.validateExpiry(2, 2020)   // true -- makes sense 

https://stripe.com/docs/stripe.js

+0

所以,你問一個問題,爲什麼他們已經實施了這種方式還是什麼條紋開發者測試字符串? – zerkms

+2

我想它('02','15')是虛假的,因爲它意味着15年,而不是2015年。這就是爲什麼這兩個真實陳述是'2020'而不是'20'。 00不應該是有效的月份。 – Josh

+0

@zerkms,我在問爲什麼「00」被認爲是一個有效的月份,當00不是 –

回答

1

我嘗試了幾個不同的排列。它似乎對我來說工作正常,但有一個例外:年份需要全部4位數字(即14未被識別爲2014)。

以下所有測試都js.stripe.com/v2

測試整數變量進行

console.log("(00, 2014) =>", Stripe.card.validateExpiry(00, 2014)); // returns false 
console.log("(01, 2014) =>", Stripe.card.validateExpiry(01, 2014)); // true 
console.log("(02, 2014) =>", Stripe.card.validateExpiry(02, 2014)); // true 
console.log("(03, 2014) =>", Stripe.card.validateExpiry(03, 2014)); // true 
console.log("(04, 2014) =>", Stripe.card.validateExpiry(04, 2014)); // true 
console.log("(05, 2014) =>", Stripe.card.validateExpiry(05, 2014)); // true 
console.log("(06, 2014) =>", Stripe.card.validateExpiry(06, 2014)); // true 
console.log("(07, 2014) =>", Stripe.card.validateExpiry(07, 2014)); // true 
console.log("(08, 2014) =>", Stripe.card.validateExpiry(08, 2014)); // true 
console.log("(09, 2014) =>", Stripe.card.validateExpiry(09, 2014)); // true 
console.log("(10, 2014) =>", Stripe.card.validateExpiry(10, 2014)); // true 
console.log("(11, 2014) =>", Stripe.card.validateExpiry(11, 2014)); // true 
console.log("(12, 2014) =>", Stripe.card.validateExpiry(12, 2014)); // true 
console.log("(13, 2014) =>", Stripe.card.validateExpiry(13, 2014)); // returns false 

測試字符串變量

console.log("('00', '2014') =>", Stripe.card.validateExpiry('00', '2014')); // returns false 
console.log("('01', '2014') =>", Stripe.card.validateExpiry('01', '2014')); // true 
console.log("('02', '2014') =>", Stripe.card.validateExpiry('02', '2014')); // true 
console.log("('03', '2014') =>", Stripe.card.validateExpiry('03', '2014')); // true 
console.log("('04', '2014') =>", Stripe.card.validateExpiry('04', '2014')); // true 
console.log("('05', '2014') =>", Stripe.card.validateExpiry('05', '2014')); // true 
console.log("('06', '2014') =>", Stripe.card.validateExpiry('06', '2014')); // true 
console.log("('07', '2014') =>", Stripe.card.validateExpiry('07', '2014')); // true 
console.log("('08', '2014') =>", Stripe.card.validateExpiry('08', '2014')); // true 
console.log("('09', '2014') =>", Stripe.card.validateExpiry('09', '2014')); // true 
console.log("('10', '2014') =>", Stripe.card.validateExpiry('10', '2014')); // true 
console.log("('11', '2014') =>", Stripe.card.validateExpiry('11', '2014')); // true 
console.log("('12', '2014') =>", Stripe.card.validateExpiry('12', '2014')); // true 
console.log("('13', '2014') =>", Stripe.card.validateExpiry('13', '2014')); // returns false 

試驗在GS整數與2位年

console.log("(00, 14) =>", Stripe.card.validateExpiry(00, 14)); // false 
console.log("(01, 14) =>", Stripe.card.validateExpiry(01, 14)); // false 
console.log("(02, 14) =>", Stripe.card.validateExpiry(02, 14)); // false 
console.log("(03, 14) =>", Stripe.card.validateExpiry(03, 14)); // false 
console.log("(04, 14) =>", Stripe.card.validateExpiry(04, 14)); // false 
console.log("(05, 14) =>", Stripe.card.validateExpiry(05, 14)); // false 
console.log("(06, 14) =>", Stripe.card.validateExpiry(06, 14)); // false 
console.log("(07, 14) =>", Stripe.card.validateExpiry(07, 14)); // false 
console.log("(08, 14) =>", Stripe.card.validateExpiry(08, 14)); // false 
console.log("(09, 14) =>", Stripe.card.validateExpiry(09, 14)); // false 
console.log("(10, 14) =>", Stripe.card.validateExpiry(10, 14)); // false 
console.log("(11, 14) =>", Stripe.card.validateExpiry(11, 14)); // false 
console.log("(12, 14) =>", Stripe.card.validateExpiry(12, 14)); // false 
console.log("(13, 14) =>", Stripe.card.validateExpiry(13, 14)); // false 

與2位年

console.log("('00', '14') =>", Stripe.card.validateExpiry('00', '14')); // false 
console.log("('01', '14') =>", Stripe.card.validateExpiry('01', '14')); // false 
console.log("('02', '14') =>", Stripe.card.validateExpiry('02', '14')); // false 
console.log("('03', '14') =>", Stripe.card.validateExpiry('03', '14')); // false 
console.log("('04', '14') =>", Stripe.card.validateExpiry('04', '14')); // false 
console.log("('05', '14') =>", Stripe.card.validateExpiry('05', '14')); // false 
console.log("('06', '14') =>", Stripe.card.validateExpiry('06', '14')); // false 
console.log("('07', '14') =>", Stripe.card.validateExpiry('07', '14')); // false 
console.log("('08', '14') =>", Stripe.card.validateExpiry('08', '14')); // false 
console.log("('09', '14') =>", Stripe.card.validateExpiry('09', '14')); // false 
console.log("('10', '14') =>", Stripe.card.validateExpiry('10', '14')); // false 
console.log("('11', '14') =>", Stripe.card.validateExpiry('11', '14')); // false 
console.log("('12', '14') =>", Stripe.card.validateExpiry('12', '14')); // false 
console.log("('13', '14') =>", Stripe.card.validateExpiry('13', '14')); // false