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 相关文章推荐
ajax更新数据后,jquery、jq失效问题
Mar 16 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
js实现图片360度旋转
Jan 22 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
Javascript中parseInt的正确使用方式
Oct 17 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
深入理解JavaScript 箭头函数
May 30 Javascript
手把手教您实现react异步加载高阶组件
Apr 07 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
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脚本的10个技巧(1)
2006/10/09 PHP
2014过年倒计时示例
2014/01/31 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
javascript 一些用法小结
2009/09/11 Javascript
Javascript面向对象编程
2012/03/18 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
JS实现div模块的截图并下载功能
2017/10/17 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
Vue表单控件绑定图文详解
2019/02/11 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
大学生求职自荐信
2013/12/12 职场文书
阳光体育活动总结
2014/04/30 职场文书
win10安装配置nginx的过程
2021/03/31 Servers