银行卡号怎样输入才正确么输入每四个数字后面加空格?

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位数字加一个空格(小细节)
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 ');
}
};小编前段时间自己做了个小项目,用到正则,刚好百度了一下,诧异的发现输入银行卡号每隔4位数字加一个空格 居然全部都是清一色的一坨代码,上面大家估计都能理解,当然我整体也能理解: 问题来了if(/\S{5}/.test(v)){正确执行}
不知道大家有没注意到,反正我是困惑到了一开始, /\S{5}/.test(v) 要为 true 才执行,刚开始以为必须5个空字符以上才执行,
尤为不解,但是认真看了下, \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) {
//只对输入数字时进行处理
if((e.which >= 48 && e.which <= 57)
(e.which >= 96 && e.which <= 105 )){
//获取当前光标的位置
var caret = this.selectionStart
//获取当前的value
var value = this.value
//从左边沿到坐标之间的空格数
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()
//从左边沿到原坐标之间的空格数
var curSp = (curVal.slice(0, caret).match(/\s/g)
[]).length
//修正光标位置
this.selectionEnd = this.selectionStart = caret + curSp - sp
}
})
})
</script>
</body>
</html>支付宝为了兼容 和 易用性, 是在悬浮一个提示框分开卡号的, 这种也比较容易实现以上所述是小编给大家介绍的JS填写银行卡号每隔4位数字加一个空格,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
在本文将为大家分享一个关于银行卡号的应用,如银行卡号为3303271988090725,接下来我们要做的就是每隔4位加个空格。我们很容易想到的就是用mid来截取位数,还有连接函数加上空格。同样去掉这每隔4个位置的空格我们会想到substitute文本函数,有了思路就差实现了,感兴趣的朋友就一起来操作下吧。比如银行卡号为3303271988090725。我们为了看的更清楚,我们需要每隔4位加个空格。3303 2719 8809 0725 效果就是如此。当然在excel源数据里,我们肯定不可能就1个这样的银行卡号。今天的案例来源于一个朋友做人事工作的,需要去检查各部门银行卡的消费情况,对照导出的花费记录。因为结果表是之前被人工加空格的,但导入的记录是没有的,所以需要去统一起来。每隔4个加空格,也就是说我们要用mid来截取位数,还有连接函数加上空格。这是我们最容易想到的。很简单,也非常容易懂。Concatenate函数甚至也能用连接符&的方法替换掉,写公式。但本人习惯用con 这个,把他们都包围起来。可能有人说我有更好的,但excel的应用在于简单高效解决问题,想到的公式也不追求多简洁,能解决问题就是有效的。所以我最早想到的公式是这样的。而且在我看来也确实解决问题了。举一反三来想这个问题。如何去掉这每隔4个位置的空格呢。我们想到的substitute文本函数。他的详细介绍和案例在我原创教程的Excel2010函数入门视频进阶教程里有。大家如果需要系统学习函数基础并想得到一定的提升,我这套原创教程是非常适合的,也提供售后解答,支持网银和淘宝购买。回到去掉空格的问题。我们的想法是substitute把空格旧文本 替换成什么都没有的新文本。所以公式有了本篇结束,欢迎大家留言与我交流。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

我要回帖

更多关于 银行卡号怎样输入才正确 的文章

 

随机推荐