我需要验证我的输入字段,然后再使用Stripe将其处理为付款。
对于卡号,我创建了一个输入框:
<input type="text" class="credit-card" id="cardnumber" name="cardnumber" size="30" value="" placeholder="XXXX-XXXX-XXXX-XXXX">
我以每4位数字自动放置-
的方式对其进行验证:
String.prototype.toCardFormat = function () {
return this.replace(/[^0-9]/g, "").substr(0, 16).split("").reduce(cardFormat, "");
function cardFormat(str, l, i) {
return str + ((!i || (i % 4)) ? "" : "-") + l;
}
};
$(".credit-card").keyup(function () {
$(this).val($(this).val().toCardFormat());
});
现在我需要在用户开始输入mm
时验证日期,它会自动添加/
并以格式mm/yyyy
生成。所以这应该是有效的日期:
05/2016
但不是这些:
13/2018
05/2006
5/19
05/19
06-2019
05 2019
此外,我使用replace方法限制用户输入ant文本和符号。
答案 0 :(得分:1)
您可以使用此API验证信用卡输入。 http://jquerycreditcardvalidator.com/ 或者查看关于Stripe API验证的博客。 https://stripe.com/blog/jquery-payment
答案 1 :(得分:1)
使用插件Jquery验证验证字段的最佳选择。 请查看以下链接: http://jqueryvalidation.org/creditcard-method/
答案 2 :(得分:1)
onkeyup我调用了名为mdate&gt;&gt;
的函数function mdata(v){
v=v.replace(/\D/g,""); //Remove what is not a digit
v=v.replace(/(\d{2})(\d)/,"$1/$2");
v=v.replace(/(\d{2})(\d)/,"$1/$2");
v=v.replace(/(\d{2})(\d{2})$/,"$1$2");
return v;
}
它将显示29/04/2000并自动输入“/".
我把它放在html中,它对我有用。