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+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
微信小程序顶部可滚动导航效果
Oct 31 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
vue中三级导航的菜单权限控制
Mar 31 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
JS实现简单日历特效
2020/01/03 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
python障碍式期权定价公式
2019/07/19 Python
python基础 range的用法解析
2019/08/23 Python
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
电焊工岗位职责
2014/03/06 职场文书
遗嘱继承公证书
2014/04/09 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
详解Django的MVT设计模式
2021/04/29 Python
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
基于JavaScript实现省市联动效果
2021/06/22 Javascript