簡體   English   中英

格式化銀行帳戶輸入僅用於顯示

[英]Formating bank account input only for display

我需要設置銀行編號的文本輸入格式,以便數字看起來像這樣:

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>

您可以使用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> 

您可能會考慮在每次輸入未聚焦或粘貼到以下值時將值更改為:

var a = document.getElementById('yourInputId');
a.onblur = function() { this.value = this.value.replace(/ /g, ''); };

提示:您可以考慮減少服務器端的空格。 這可能是服務器端驗證的一部分。

最后,我決定改用簡單的PHP過濾器:

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

前端上的cleave.js庫可以很好地滿足我的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM