JS填寫銀行卡號每隔4位數(shù)字加一個空格
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>
輸入銀行卡號,每隔4位數(shù)字加一個空格(小細節(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 '); } };
小編前段時間自己做了個小項目,用到正則,剛好百度了一下,詫異的發(fā)現(xiàn)輸入銀行卡號每隔4位數(shù)字加一個空格 居然全部都是清一色的一坨代碼,上面大家估計都能理解,當(dāng)然我整體也能理解: 問題來了
if(/\S{5}/.test(v)){正確執(zhí)行}
不知道大家有沒注意到,反正我是困惑到了一開始, /\S{5}/.test(v) 要為 true 才執(zhí)行,剛開始以為必須5個空字符以上才執(zhí)行,
尤為不解,但是認真看了下, \S 居然是大寫,我大約知道原因了,我相信大家像我一樣一般常用都用 \d \w \s 這些小寫的
\D \W \S 大寫我還真沒用過或許我的能力原因吧, \S 是除了空字符 那上面的代碼就海闊天空了。
銀行卡號每隔4位插入空格 (再用戶填寫銀行卡號的時候挺有用的) IE9+
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>銀行卡號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) { //只對輸入數(shù)字時進行處理 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>
支付寶為了兼容 和 易用性, 是在懸浮一個提示框分開卡號的, 這種也比較容易實現(xiàn)
以上所述是小編給大家介紹的JS填寫銀行卡號每隔4位數(shù)字加一個空格,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript高級程序設(shè)計 讀書筆記之十一 內(nèi)置對象Global
由ECMAScript實現(xiàn)提供的、獨立于宿主環(huán)境的所有對象,在ECMAScript程序開始執(zhí)行時出現(xiàn)2012-03-03手機端點擊圖片放大特效PhotoSwipe.js插件實現(xiàn)
這篇文章主要為大家詳細介紹了手機端點擊圖片放大特效PhotoSwipe.js插件實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08利用原生js和jQuery實現(xiàn)單選框的勾選和取消操作的方法
下面小編就為大家?guī)硪黄迷鷍s和jQuery實現(xiàn)單選框的勾選和取消操作的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09微信小程序BindTap快速連續(xù)點擊目標(biāo)頁面跳轉(zhuǎn)多次問題處理
這篇文章主要介紹了微信小程序BindTap快速連續(xù)點擊目標(biāo)頁面跳轉(zhuǎn)多次問題處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04關(guān)于捕獲用戶何時點擊window.onbeforeunload的取消事件
關(guān)于捕獲用戶何時點擊window.onbeforeunload的取消事件的代碼,需要的朋友可以參考下。2011-03-03