JS填写银行卡号每隔4位数字加一个空格


Posted in Javascript onDecember 19, 2016

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位数字加一个空格

以上所述是小编给大家介绍的JS填写银行卡号每隔4位数字加一个空格,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
利用javascript查看html源文件
Nov 08 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
May 14 Javascript
javascript中使用css需要注意的地方小结
Sep 01 Javascript
js调试系列 源码定位与调试[基础篇]
Jun 18 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
Vue异步组件使用详解
Apr 08 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
原生js实现淘宝放大镜效果
Oct 28 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
Feb 20 Javascript
微信小程序实现点击导航条切换页面
Nov 19 Javascript
JavaScript中校验银行卡号的实现代码
Dec 19 #Javascript
快速入门Vue
Dec 19 #Javascript
javascript中call,apply,bind函数用法示例
Dec 19 #Javascript
谈谈jQuery之Deferred源码剖析
Dec 19 #Javascript
15个非常实用的JavaScript代码片段
Dec 18 #Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
Dec 18 #Javascript
简单实现node.js图片上传
Dec 18 #Javascript
You might like
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
JavaScript触发器详解
2007/03/10 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python中splitlines()方法的使用简介
2015/05/20 Python
python中引用与复制用法实例分析
2015/06/04 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
python GUI实例学习
2017/11/21 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
Tensorflow累加的实现案例
2020/02/05 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
优秀老员工获奖感言
2014/02/15 职场文书
办护照工作证明
2014/10/01 职场文书
国防教育标语
2014/10/08 职场文书
怎样写辞职信
2015/02/27 职场文书
现场施工员岗位职责
2015/04/11 职场文书
礼仪培训心得体会
2016/01/22 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js