Назад в мои дни LC Mac я клялся Монако 9 ПБ, главным образом поскольку оно разрезало 0. Я никогда вполне привык к высоте строки по умолчанию все же.
образец Монако http://www.k8zt.com/ham_fonts/monaco.jpg
Это немного твердо к , разыскивают в исходной версии неOS X.
Вероятно, это связано с тем, что этот валидатор просто проверяет, что предоставленное число удовлетворяет алгоритму LUHN-10 (которому 42 удовлетворяет, поскольку 4 * 2 + 2 = 10, что равно 0 по модулю 10).
Лучшему валидатору, возможно, следует проверить минимальное количество цифр.
Я не уверен, что это соответствует самому последнему коду из 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 удовлетворяет требованиям, не обращая внимания на минимальную длину.
Длина номеров кредитных карт может варьироваться в зависимости от эмитента (хотя да, обычно минимальная длина составляет ~ 13 цифр) . Однако, поскольку это проверка на стороне клиента, основное внимание, вероятно, уделяется уменьшению вероятности небольшой опечатки, а не проверке произвольных данных. Вероятно, это должно быть сделано на стороне сервера.
Вы можете комбинировать правило кредитной карты с правилами минимальной и максимальной длины для достижения желаемого. Это может показаться слишком большим усилием - и я могу согласиться - хотя это дает вам больше контроля, если вы хотите принимать только определенные длины номеров карт.
$('form').validate({
'#ccNum': {
creditcard: true,
required: true,
minlength: 13,
maxlength: 19
}
});