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í)行,
尤為不解,但是認(rèn)真看了下, \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

