vue中Element-ui 输入银行账号每四位加一个空格的实现代码


Posted in Javascript onSeptember 14, 2018

一、问题描述:

    我们在输入银行账号会设置每四位添加一个空格,输入金额,每三位添加一个空格。那么,在vue,element-ui 组件中,如何实现呢?

二、效果图:

vue中Element-ui 输入银行账号每四位加一个空格的实现代码

三、实现代码:

<el-table-column prop="account" label="银行账号">
  <template slot-scope="scope">
   <el-input type="text" maxlength="23" v-model="scope.row.account" placeholder="请输入银行账号"   
     @change="validateNum(scope.$index)"></el-input>
  </template>
</el-table-column>
// 输入银行卡号
 validateNum (index) {
  this.setNum(this.supplierObjs.supplierBankAccount, index)
 },
// 设置银行卡号,每四位添加一个空格
 setNum (data, index) {
  data.forEach((element, i) => {
  element.account = element.account.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ')
  this.$set(element, 'account', element.account)
  })
 },

四、思路:

   1、在组件的change事件中添加实现方法(因为我们的业务需求是可以添加多个银行卡号,所以用index做了区分),取出每行的值;

   2、用element.account = element.account.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 '),类似正则表达式的方法对数据进行处理;

   3、this.$set(element, 'account', element.account),set方法,将处理后的值set到model中,处理后的数据就保存到model中了。

         实现起来也非常简单,但是因为element-UI没有提供输入设置的方法,所以需要自己根据需求完善一下。

补充:下面看下js 填写银行卡号时,每4个数字用空格隔开

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title>Document</title>
  <script src="js/jQuery.js"></script>
</head>
<body>
  <script>
  var num = 0;
  function inputAccount(){
   var str = $('#bankCard').val();
   var elem = document.getElementById("bankCard");
   console.log(elem);
   if(str.length > num){
     var c = str.replace(/\s/g, ""); 
     if(str != "" && c.length > 4 && c.length % 4 == 1){
      $('#bankCard').val(str.substring(0, str.length - 1)+ " " + str.substring(str.length - 1, str.length));
     }
   }
   if(elem.setSelectionRange){//W3C
      setTimeout(function(){
        elem.setSelectionRange(elem.value.length,elem.value.length);
        elem.focus();
      },0);
    }else if(elem.createTextRange){//IE
      var textRange=elem.createTextRange();
      textRange.moveStart("character",elem.value.length);
      textRange.moveEnd("character",0);
      textRange.select();
    }
   num = str.length;
 }
  </script>
  <input type="text" name="" oninput="inputAccount()" id="bankCard" />
</body>

</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title>Document</title>
  <script src="js/jQuery.js"></script>
</head>
<body>
  <input type="text" name="" id="box" />
  <script>
   $(function(){
    $('#box').keyup(function(){
     var value=$(this).val().replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 "); 
     $(this).val(value)
    }) 
   }) 
  </script>
</body>
</html>

总结

以上所述是小编给大家介绍的vue中Element-ui 输入银行账号每四位加一个空格的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
js实现文件上传表单域美化特效
Nov 02 Javascript
JavaScrip常见的一些算法总结
Dec 28 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
Mongoose学习全面理解(推荐)
Jan 21 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
uni-app如何实现增量更新功能
Jan 03 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 #Javascript
Javascript 之封装(Package)
Sep 14 #Javascript
微信小程序框架wepy之动态控制类名
Sep 14 #Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 #Javascript
react 国际化的实现代码示例
Sep 14 #Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
Sep 14 #Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
Sep 14 #Javascript
You might like
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
PHP开发注意事项总结
2015/02/04 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
Python映射拆分操作符用法实例
2015/05/19 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python绘制封闭多边形教程
2020/02/18 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
Python连接Impala实现步骤解析
2020/08/04 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
中国好声音华少广告词
2014/03/17 职场文书
利群广告词
2014/03/20 职场文书
食品流通安全承诺书
2014/05/22 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
2015年营销工作总结范文
2015/04/23 职场文书