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 相关文章推荐
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
JQuery跨Iframe选择实现代码
Aug 19 Javascript
如何判断元素是否为HTMLElement元素
Dec 06 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
AngularJS手动表单验证
Feb 01 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
JS实现前端路由功能示例【原生路由】
May 29 Javascript
js轮播图之旋转木马效果
Oct 13 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
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
基于python socketserver框架全面解析
2017/09/21 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
档案接收函
2014/01/13 职场文书
大学开学计划书
2014/04/30 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
个人债务授权委托书
2014/10/17 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
经费申请报告范文
2015/05/18 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
高温慰问简报
2015/07/21 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS
MySQL空间数据存储及函数
2021/09/25 MySQL
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers