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 相关文章推荐
UserData用法总结 lanyu出品
Jul 01 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
Jan 08 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
纯js实现倒计时功能
Jan 06 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
AngularJS前端页面操作之用户修改密码功能示例
Mar 27 Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
Jul 03 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 中dirname(_file_)讲解
2007/03/18 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
php并发加锁示例
2016/10/17 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
php DES加密算法实例分析
2019/09/18 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
图片完美缩放
2006/09/07 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python装饰器常见使用方法分析
2019/06/26 Python
np.random.seed() 的使用详解
2020/01/14 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
畜牧兽医本科生的自我评价
2014/03/03 职场文书
建筑投标担保书
2014/05/20 职场文书
团队激励口号
2014/06/06 职场文书
土建施工员岗位职责
2014/07/16 职场文书
运动会报道稿300字
2014/10/02 职场文书
教师先进个人材料
2014/12/17 职场文书
旅行社计调工作总结
2015/08/12 职场文书
党校培训学习心得体会
2016/01/06 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang