輸入框內格式化金額 銀行卡號

2022-01-19 15:09:01 字數 1834 閱讀 3625

我們在專案中經常遇到需要格式化的金額數和銀行卡號,一般我們常見的有兩種表現形式:輸入框內格式化和輸入框外格式化。這裡我主要把我在專案中遇到的輸入框內部格式化的,**亮出來,框外的格式化相對簡單一點。

頁面**:

銀行卡號格式化

//卡號每4位一組格式化

$("#bankcard").on("keyup", formatbc);

function formatbc(e)

if(temp != this.value)

}

這裡用「keyup」事件處理格式化,每4位數一組中間空格隔開。但是資料格式化以後又不利於計算,所以給當前元素新增乙個屬性「data-oral」,儲存未處理的數字,這樣計算或者要傳遞到後台可以獲取「data-oral」的值。

金額格式化

金額格式化和銀行卡號格式化類似,但又有點不同,因為金額每3位數一組用逗號隔開,一般最後有小數點且保留兩位有效數字。這裡我開始用到「keyup」和"change"事件,但是ie

瀏覽器對於change

事件存在相容問題,可以改用focus

和blur

事件代替。

類似給元素新增屬性「data-oral」儲存未格式化的數字。

/*

* 金額每3位數一組逗號隔開格式化

* 1.先把非數字的都替換掉

* 2.由於ie瀏覽器對於change事件存在相容問題,改用focus和blur事件代替。

* */

$("#moneynum").on("keyup", formatmn);

$("#moneynum").on(,

blur: function()

var s = this.value;

var temp;

if(/.+(\..*\.|\-).*/.test(s))

s = parsefloat((s + "").replace(/[^\d\.\-]/g, "")).tofixed(2) + "";

var l = s.split(".")[0].split("").reverse(),

r = s.split(".")[1];

t = "";

for(i = 0; i < l.length; i ++ )

temp = t.split("").reverse().join("") + "." + r;

this.value = temp;

return this.value;}}

});function formatmn(e)

其實我覺得,輸入框外的格式化更合理一些,大多數都是輸入框外部格式化的,我寫了個例子也拉出來吧。

輸入框外部格式化卡號

原理很簡單,就是隱藏乙個顯示格式化的模組,當輸入框獲取焦點時顯示,失去焦點時隱藏即可。

頁面**:

格式化**:

/* 銀行卡號實時驗證放大顯示 */

$(".inputcard").keyup(function(e)

if(val == self)else

});$(".inputcard").unbind('focusin');

$(".inputcard").bind('focusin',function(e)

});$(".inputcard").unbind('focusout');

$(".inputcard").bind('focusout',function(e));

js控制手機號 銀行卡輸入格式化

function formatinput inputelem else setcursorposition ctx,curpos,index delta 50 function paddingspace str d g,1 replace d d g,1 如上方法是控制輸入值的格式,當然你可以改變r...

解決微信小程式銀行卡號輸入轉換格式

ps 2017 02 17 19 44 發現新bug,暫已解決優化中 新手第一次寫部落格,請多多見諒!感覺會有更好的辦法,希望有大牛能對我指點指點 輸入框 輸入後的值 樣式太醜了,決定換乙個樣式 給輸入框乙個監聽事件 輸入的值長度 1 5 等於 0 就加上空格,但是後來發現,使用者回刪資料的時候依舊...

手機號,銀行卡號等自動分組顯示的輸入框

位址如下 前言 在android開發中,我們經常會遇到手機號,銀行卡號,稅號等長串數字或字母,為了視覺上的簡潔化,需要4個一組分組顯示,今天就講講這個功能的實現和使用。今天涉及的內容有 原理分析 小寫轉大寫的類uppercasetransform 封裝類credittext的介紹和使用 專案結構圖和...