仅为显示格式化银行帐户输入

时间:2017-05-11 14:35:05

标签: javascript regex validation input format

我需要格式化银行编号的文本输入,以便数字以这种方式显示:

  

11 2490 1111 0000 0000 2222 3333

问题是我只是希望为用户显示这个格式(带空格),但是在没有它的情况下将其发送到服务器(11249011110000000022223333)。我怎样才能做到这一点?

修改

这是我用formatter.js库(http://firstopinion.github.io/formatter.js/index.html)编写的:

<script>
$(document).ready(function () {
        var formatted = new Formatter(document.getElementById('bank_account-0'), {
        'pattern': '{{99}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}}',
        'persistent': false
    });
});
</script>

2 个答案:

答案 0 :(得分:1)

您可以使用bankAccount.value.replace(/ /g, '')

代码示例:

var bankAccount = document.getElementById('bank_account-0'),
    getNumber = document.getElementById('get_number');

new Formatter(bankAccount, {
  'pattern': '{{99}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}}',
  'persistent': false
});

getNumber.onclick = function() {
  var num = bankAccount.value.replace(/ /g, '');
  console.log(num);
}
.input { width: 240px}
<script src="//firstopinion.github.io/formatter.js/javascripts/formatter.js"></script>

<input type="text" class="input" id="bank_account-0" maxlength="26" pattern="\d*">
<button id="get_number">Get number</button>

答案 1 :(得分:0)

最后,我决定改用简单的PHP过滤器:

$element->addFilter('PregReplace', array( 'match' => '/\s/', 'replace' => '' )); 

在前端的cleave.js库中可以正常工作,并且符合我的要求。