JS填寫(xiě)銀行卡號(hào)每隔4位數(shù)字加一個(gè)空格
1、原生js寫(xiě)法
!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寫(xiě)法
<!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)然我整體也能理解: 問(wèn)題來(lái)了
if(/\S{5}/.test(v)){正確執(zhí)行}
不知道大家有沒(méi)注意到,反正我是困惑到了一開(kāi)始, /\S{5}/.test(v) 要為 true 才執(zhí)行,剛開(kāi)始以為必須5個(gè)空字符以上才執(zhí)行,
尤為不解,但是認(rèn)真看了下, \S 居然是大寫(xiě),我大約知道原因了,我相信大家像我一樣一般常用都用 \d \w \s 這些小寫(xiě)的
\D \W \S 大寫(xiě)我還真沒(méi)用過(guò)或許我的能力原因吧, \S 是除了空字符 那上面的代碼就海闊天空了。
銀行卡號(hào)每隔4位插入空格 (再用戶(hù)填寫(xiě)銀行卡號(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è)提示框分開(kāi)卡號(hào)的, 這種也比較容易實(shí)現(xiàn)

以上所述是小編給大家介紹的JS填寫(xiě)銀行卡號(hào)每隔4位數(shù)字加一個(gè)空格,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(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ù)輸入銀行卡號(hào)及格式化
- JS代碼隨機(jī)生成姓名、手機(jī)號(hào)、身份證號(hào)、銀行卡號(hào)
- js實(shí)現(xiàn)模擬銀行卡賬號(hào)輸入顯示效果
- js格式化輸入框內(nèi)金額、銀行卡號(hào)
- 解決javascript 全局變量失效的問(wèn)題
- js手機(jī)號(hào)4位顯示空格,銀行卡每4位顯示空格效果
- nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢(xún)和騷擾電話驗(yàn)證示例
- JS實(shí)現(xiàn)的獲取銀行卡號(hào)歸屬地及銀行卡類(lèi)型操作示例
相關(guān)文章
JavaScript高級(jí)程序設(shè)計(jì) 讀書(shū)筆記之十一 內(nèi)置對(duì)象Global
由ECMAScript實(shí)現(xiàn)提供的、獨(dú)立于宿主環(huán)境的所有對(duì)象,在ECMAScript程序開(kāi)始執(zhí)行時(shí)出現(xiàn)2012-03-03
BootStrap入門(mén)教程(三)之響應(yīng)式原理
這篇文章主要介紹了BootStrap入門(mén)教程(三)之響應(yīng)式原理的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09
手機(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ī)?lái)一篇利用原生js和jQuery實(shí)現(xiàn)單選框的勾選和取消操作的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
微信小程序BindTap快速連續(xù)點(diǎn)擊目標(biāo)頁(yè)面跳轉(zhuǎn)多次問(wèn)題處理
這篇文章主要介紹了微信小程序BindTap快速連續(xù)點(diǎn)擊目標(biāo)頁(yè)面跳轉(zhuǎn)多次問(wèn)題處理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
關(guān)于捕獲用戶(hù)何時(shí)點(diǎn)擊window.onbeforeunload的取消事件
關(guān)于捕獲用戶(hù)何時(shí)點(diǎn)擊window.onbeforeunload的取消事件的代碼,需要的朋友可以參考下。2011-03-03

