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操作select控件的几种方法
Jun 02 Javascript
jquery.form.js用法之清空form的方法
Mar 07 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
Bootstrap3制作自己的导航栏
May 12 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
Node.js log4js日志管理详解
Jul 31 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
Oct 09 Javascript
使用p5.js实现动态GIF图片临摹重现
Oct 23 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python中调试或排错的五种方法示例
2019/09/12 Python
django 模型中的计算字段实例
2020/05/19 Python
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
幼儿教师演讲稿
2014/05/06 职场文书
考研复习计划
2015/01/19 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers