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 相关文章推荐
javascript中的self和this用法小结
Feb 08 Javascript
node.js中的fs.fstatSync方法使用说明
Dec 15 Javascript
深入分析原生JavaScript事件
Dec 29 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
js实现拖拽功能
Mar 01 Javascript
JS的Ajax与后端交互数据的实例
Aug 08 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
PHP实现递归的三种方法
2020/07/04 PHP
js静态作用域的功能。
2006/12/25 Javascript
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
react-router实现按需加载
2017/05/09 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
Python获取网段内ping通IP的方法
2019/01/31 Python
python是否适合网页编程详解
2019/10/04 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
什么是GWT的Module
2013/01/20 面试题
学前教育学生自荐信范文
2013/12/31 职场文书
暑期研修感言
2014/02/17 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
高考标语大全
2014/06/05 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
感动中国何玥观后感
2015/06/02 职场文书