本文通过两种方法给大家介绍了正则表达式实现字符串每4位后自动加空格效果,需要的朋友可以参考下

需求:输入框中输入银行卡号(或其他)时,每4位自动加空格(如下图)

分析

方法一:监控输入框的keyup事件,当value值的长度为4,8,12,16时,插入空格字符串“ ”(vue中代码片段如下)

<input type="text" v-model="bankCard" @keyup="bankCardKeyup">
bankCardKeyup (e) {
  let self = this
  // 如果是删除键,则不加空格,且删去字符串末端空格
  if (e.keyCode === 8) {
  self.bankCard = self.bankCard.replace(/[\s\n\t]+$/g, "")
  return
  }
  self.bankCard = self.bankCard.replace(/[^0-9|' ']*/g, '')
  let value = self.bankCard.replace(/[^0-9]*/g, '')
  if (value.length > 4 && value.length <= 8) {
  self.bankCard = value.slice(0, 4) + ' ' + value.slice(4, value.length)
  }
  else if (value.length > 8 && value.length <= 12) {
  self.bankCard = value.slice(0, 4) + ' ' + value.slice(4, 8) + ' ' + value.slice(8, value.length)
  }
  else if (value.length > 12 && value.length <= 16) {
  self.bankCard = value.slice(0, 4) + ' ' + value.slice(4, 8) + ' ' + value.slice(8, 12) + ' ' + value.slice(12, value.length)
  if (value.length === 16) {
   // 调用识别银行卡函数

  }
  }
  else if (value.length > 16) {
  self.bankCard = value.slice(0, 4) + ' ' + value.slice(4, 8) + ' ' + value.slice(8, 12)+ ' ' + value.slice(12, 16) + ' ' + value.slice(16, value.length)
  if (value.length === 19) {
   // 调用识别银行卡函数

  }
  else if (value.length > 19) {
   self.bankCard = value.slice(0, 4) + ' ' + value.slice(4, 8) + ' ' + value.slice(8, 12)+ ' ' + value.slice(12, 16) + ' ' + value.slice(16, 19)
  }
  }
 },

方法二:实践 - - - 利用正则匹配,自动设置input框的value值(能在任意位置添加任意字符,且会自动删除字符串末端空格)

<input type="text" v-model="bankCard" @keyup="bankCardKeyup">
bankCardKeyup () {
 let self = this
 self.bankCard = self.bankCard.replace(/\s/g,'').replace(/[^\d]/g,'').replace(/(\d{4})(?=\d)/g,'$1 ')
}

总结

以上所述是小编给大家介绍的正则表达式实现字符串每4位后自动加空格效果(两种方法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

    无相关信息
最新资讯
传今年iPhone将采用三摄系统 背部增加超广角镜头

传今年iPhone将采用三

了让这些镜头看起来不那么突兀,它们都会被涂成黑色,隐藏
深击|亚马逊中国电商 毁于谁手?

深击|亚马逊中国电商

面对模式多变、打法草莽的本土竞争对手,它的掉队似乎成
瑞银:苹果支付60亿 每卖一台iPhone给高通9美元

瑞银:苹果支付60亿 每

瑞银(UBS)分析师蒂莫西·阿尔库里(Timothy Arcuri)发布的
京东数科再次加码网贷平台 有意“抢滩”P2P

京东数科再次加码网贷

从时间上可以看出,大多数巨头布局的阶段刚好是P2P急速
上市公司密集剥离旗下P2P 30个月锐减70家

上市公司密集剥离旗下

有业内人士分析,“退出多为受政策影响,优化资产结构及资
联想:无限可能在中国

联想:无限可能在中国

针对新一财年,杨元庆为联想集团定下了营业额至少提升50
最新文章
Python正则表达式的7个使用典范(推荐)

Python正则表达式的7

这篇文章主要介绍了Python正则表达式的7个使用典范,非
使用正则表达式实现网页爬虫的思路详解

使用正则表达式实现网

网页爬虫:就是一个程序用于在互联网中获取指定规则的数
13道关于JavaScript正则表达式的面试题

13道关于JavaScript正

本文是小编给大家收藏整理的13道关于JavaScript正则表
藏在正则表达式里的陷阱(推荐)

藏在正则表达式里的陷

本文是小编给大家收藏整理的关于藏在正则表达式里的陷
JS 正则表达式从地址中提取省市县

JS 正则表达式从地址

这篇文章主要介绍了JS 正则表达式从地址中提取省市县
正则表达式re.sub替换不完整的问题及完整解决方案

正则表达式re.sub替换

re.sub是个正则表达式方面的函数,用来实现通过正则表达