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导出格式化的excel 实例方法
Jul 17 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
ztree实现权限横向显示功能
May 20 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 Javascript
解决vue同一slot在组件中渲染多次的问题
Sep 06 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
JS获取当前时间戳方法解析
Aug 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 变量定义方法
2009/06/14 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
Python中的ceil()方法使用教程
2015/05/14 Python
python相似模块用例
2016/03/04 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
就业意向书
2014/07/29 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
python神经网络Xception模型
2022/05/06 Python
nginx 配置缓存
2022/05/11 Servers