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 相关文章推荐
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
基于jquery的Repeater实现代码
Jul 17 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
Apr 25 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
ajax分页效果(bootstrap模态框)
Jan 23 Javascript
Vue指令的钩子函数使用方法
Mar 20 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
layer弹出层取消遮罩的方法
Sep 25 Javascript
JS求解两数之和算法详解
Apr 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
探讨如何把session存入数据库
2013/06/07 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP时间函数使用详解
2019/03/21 PHP
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
js实现表格筛选功能
2017/01/18 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
JS实现标签滚动切换效果
2017/12/25 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
python3爬虫怎样构建请求header
2018/12/23 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python复合条件下的字典排序
2020/12/18 Python
儿科主治医生个人求职信
2013/09/23 职场文书
机电一体化专业应届生求职信
2013/11/27 职场文书
学校门卫管理制度
2014/01/30 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python