これはおそらく、このバリデーターが、提供された数値がLUHN-10アルゴリズム (0 modulo 10 である 4*2 + 2 = 10 であるため、42 が満たされる) を満たすかどうかをチェックするだけだからです。
より優れたバリデーターは、最小桁数をチェックする必要があります。
これが jQuery の最新のコードに対応しているかどうかはわかりませんが、クレジット カードの検証に関連するスニペットを見つけました。
// http://docs.jquery.com/Plugins/Validation/Methods/creditcard
// based on http://en.wikipedia.org/wiki/Luhn
creditcard: function(value, element) {
if ( this.optional(element) )
return "dependency-mismatch";
// accept only digits and dashes
if (/[^0-9-]+/.test(value))
return false;
var nCheck = 0,
nDigit = 0,
bEven = false;
value = value.replace(/\D/g, "");
for (n = value.length - 1; n >= 0; n--) {
var cDigit = value.charAt(n);
var nDigit = parseInt(cDigit, 10);
if (bEven) {
if ((nDigit *= 2) > 9)
nDigit -= 9;
}
nCheck += nDigit;
bEven = !bEven;
}
return (nCheck % 10) == 0;
},
...そして、これを見るとわかるように、すべての文字が数字であり、LUHN-10 が満たされていることを確認するだけで、最小の長さに注意を払う必要はありません。