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 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
Apr 13 Javascript
Vue实现web分页组件详解
Nov 28 Javascript
Vue使用mixins实现压缩图片代码
Mar 14 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
May 01 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
解决vue组件中click事件失效的问题
Nov 09 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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自动更新新闻DIY
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php实现通过ftp上传文件
2015/06/19 PHP
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[08:40]Navi Vs Newbee
2018/06/07 DOTA
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
重阳节登山活动方案
2014/02/03 职场文书
函授药学自我鉴定
2014/02/07 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
住宅质量保证书
2014/04/29 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
公司门卫工作职责
2014/06/28 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
保洁员岗位职责
2015/02/04 职场文书
责任书格式
2019/04/18 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
python获取对象信息的实例详解
2021/07/07 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫