当用户使用JavaScript键入信用卡号时,我需要在每四个字符后插入一个空格。
<input type="text" size="19" maxlength="19" data-stripe="number" placeholder="1234 5678 9012 3456">
实现这一目标的最佳方法是什么?
答案 0 :(得分:7)
试试这个:
输入:
<input type="text" maxlength="19" class="text" />
jquery的:
$('.text').on('keyup', function() {
var foo = $(this).val().split(" ").join("");
if (foo.length > 0) {
foo = foo.match(new RegExp('.{1,4}', 'g')).join(" ");
}
$(this).val(foo);
});
答案 1 :(得分:2)
我看到你正在使用Stripe。它们提供了一个很好的插件,可以完全满足您的需求。请注意,您可以在不使用Stripe的情况下使用此插件:
https://github.com/stripe/jquery.payment
如果你正在寻找一个纯粹的javascript和light版本,我创建了一个支持美国运通格式(15位)以及Visa,MasterCard和其他(16位)的产品:
https://stackoverflow.com/a/39804917/1895428
注意将取代整个价值的简单解决方案,并始终将焦点放在输入的末尾:如果用户编辑他之前输入的内容,则可能会很烦人。
答案 2 :(得分:-6)
你可以使用jquery和掩码,请检查它jquery and mask
对于jquery你只需要戴上面具
$("#date").mask("9999 9999 9999 9999");