JS填寫銀行卡號(hào)每隔4位數(shù)字加一個(gè)空格
1、原生js寫法
!function () { document.getElementById('bankCard').onkeyup = function (event) { var v = this.value; if(/\S{5}/.test(v)){ this.value = v.replace(/\s/g, '').replace(/(.{4})/g, "$1 "); } }; }();
2、jQuery寫法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="text" id="J_BankCard"/> <script src="http://static.ydcss.com/libs/jquery/1.11.2/jquery.js"></script> <script> !function () { $('#J_BankCard').on('keyup mouseout input',function(){ var $this = $(this), v = $this.val(); /\S{5}/.test(v) && $this.val(v.replace(/\s/g,'').replace(/(.{4})/g, "$1 ")); }); }(); </script> </body> </html>
輸入銀行卡號(hào),每隔4位數(shù)字加一個(gè)空格(小細(xì)節(jié))
document.getElementById('bankCardInp').onkeyup = function (event) { var v = this.value; console.log(/\S{5}/.test(v)); console.log(v); if(/\S{5}/.test(v)){ this.value = v.replace(/\s/g, '').replace(/(.{4})/g, '$1 '); } };
小編前段時(shí)間自己做了個(gè)小項(xiàng)目,用到正則,剛好百度了一下,詫異的發(fā)現(xiàn)輸入銀行卡號(hào)每隔4位數(shù)字加一個(gè)空格 居然全部都是清一色的一坨代碼,上面大家估計(jì)都能理解,當(dāng)然我整體也能理解: 問題來了
if(/\S{5}/.test(v)){正確執(zhí)行}
不知道大家有沒注意到,反正我是困惑到了一開始, /\S{5}/.test(v) 要為 true 才執(zhí)行,剛開始以為必須5個(gè)空字符以上才執(zhí)行,
尤為不解,但是認(rèn)真看了下, \S 居然是大寫,我大約知道原因了,我相信大家像我一樣一般常用都用 \d \w \s 這些小寫的
\D \W \S 大寫我還真沒用過或許我的能力原因吧, \S 是除了空字符 那上面的代碼就海闊天空了。
銀行卡號(hào)每隔4位插入空格 (再用戶填寫銀行卡號(hào)的時(shí)候挺有用的) IE9+
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>銀行卡號(hào)4位空格</title> <script src="http://j2.58cdn.com.cn/js/jquery-1.8.3.js"></script> </head> <body> <input type="text" id="kahao" /> <script> $(function() { $('#kahao').on('keyup', function(e) { //只對(duì)輸入數(shù)字時(shí)進(jìn)行處理 if((e.which >= 48 && e.which <= 57) || (e.which >= 96 && e.which <= 105 )){ //獲取當(dāng)前光標(biāo)的位置 var caret = this.selectionStart //獲取當(dāng)前的value var value = this.value //從左邊沿到坐標(biāo)之間的空格數(shù) var sp = (value.slice(0, caret).match(/\s/g) || []).length //去掉所有空格 var nospace = value.replace(/\s/g, '') //重新插入空格 var curVal = this.value = nospace.replace(/(\d{4})/g, "$1 ").trim() //從左邊沿到原坐標(biāo)之間的空格數(shù) var curSp = (curVal.slice(0, caret).match(/\s/g) || []).length //修正光標(biāo)位置 this.selectionEnd = this.selectionStart = caret + curSp - sp } }) }) </script> </body> </html>
支付寶為了兼容 和 易用性, 是在懸浮一個(gè)提示框分開卡號(hào)的, 這種也比較容易實(shí)現(xiàn)
以上所述是小編給大家介紹的JS填寫銀行卡號(hào)每隔4位數(shù)字加一個(gè)空格,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- js jquery驗(yàn)證銀行卡號(hào)信息正則學(xué)習(xí)
- JavaScript中校驗(yàn)銀行卡號(hào)的實(shí)現(xiàn)代碼
- JS使用正則控制用戶輸入銀行卡號(hào)及格式化
- JS代碼隨機(jī)生成姓名、手機(jī)號(hào)、身份證號(hào)、銀行卡號(hào)
- js實(shí)現(xiàn)模擬銀行卡賬號(hào)輸入顯示效果
- js格式化輸入框內(nèi)金額、銀行卡號(hào)
- 解決javascript 全局變量失效的問題
- js手機(jī)號(hào)4位顯示空格,銀行卡每4位顯示空格效果
- nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢和騷擾電話驗(yàn)證示例
- JS實(shí)現(xiàn)的獲取銀行卡號(hào)歸屬地及銀行卡類型操作示例
相關(guān)文章
JavaScript高級(jí)程序設(shè)計(jì) 讀書筆記之十一 內(nèi)置對(duì)象Global
由ECMAScript實(shí)現(xiàn)提供的、獨(dú)立于宿主環(huán)境的所有對(duì)象,在ECMAScript程序開始執(zhí)行時(shí)出現(xiàn)2012-03-03手機(jī)端點(diǎn)擊圖片放大特效PhotoSwipe.js插件實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了手機(jī)端點(diǎn)擊圖片放大特效PhotoSwipe.js插件實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08利用原生js和jQuery實(shí)現(xiàn)單選框的勾選和取消操作的方法
下面小編就為大家?guī)硪黄迷鷍s和jQuery實(shí)現(xiàn)單選框的勾選和取消操作的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09微信小程序BindTap快速連續(xù)點(diǎn)擊目標(biāo)頁面跳轉(zhuǎn)多次問題處理
這篇文章主要介紹了微信小程序BindTap快速連續(xù)點(diǎn)擊目標(biāo)頁面跳轉(zhuǎn)多次問題處理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04關(guān)于捕獲用戶何時(shí)點(diǎn)擊window.onbeforeunload的取消事件
關(guān)于捕獲用戶何時(shí)點(diǎn)擊window.onbeforeunload的取消事件的代碼,需要的朋友可以參考下。2011-03-03