如何在html输入中的四个字符后插入空格?

时间:2015-02-28 08:18:57

标签: javascript html text

当用户使用JavaScript键入信用卡号时,我需要在每四个字符后插入一个空格。

<input type="text" size="19" maxlength="19" data-stripe="number" placeholder="1234 5678 9012 3456">

实现这一目标的最佳方法是什么?

3 个答案:

答案 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);
});

小提琴:https://jsfiddle.net/juspC/126/

答案 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");

check it