正则表达式实现字符串每4位后自动加空格效果(两种方法)

 更新时间:2018年09月14日 16:32:03   作者:蜗牛羽  
本文通过两种方法给大家介绍了正则表达式实现字符串每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位后自动加空格效果(两种方法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Python正则表达式的7个使用典范(推荐)

    Python正则表达式的7个使用典范(推荐)

    这篇文章主要介绍了Python正则表达式的7个使用典范,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 正值表达式匹配html标签的属性值

    正值表达式匹配html标签的属性值

    正则表达式是做文本解析工作必不可少的技能。今天通过本文给大家介绍正值表达式匹配html标签的属性值,需要的朋友一起学习吧
    2016-02-02
  • PHP中基于perl的正则表达式处理函数

    PHP中基于perl的正则表达式处理函数

    和正则表达式一样,正则表达式处理函数不能够独立使用,而这必须相结合,才能够完成特定的功能。我们只介绍以preg开头的基于perl的正则表达式。
    2015-10-10
  • ASP超级链接和HTML函数正则表达式 修正版

    ASP超级链接和HTML函数正则表达式 修正版

    ASP超级链接和HTML函数 正则表达式的使用,最后一个实例经过测试。
    2010-01-01
  • asp下正则实现URL自动链接的一个函数

    asp下正则实现URL自动链接的一个函数

    asp下正则实现URL自动链接的一个函数...
    2007-04-04
  • 正则表达式中的反向预搜索(上)

    正则表达式中的反向预搜索(上)

    这几天在用正则表达式做一个小程序,需要替换内容中的某些特殊字符串。这些字符串的出现是有规律的,那就是在它左面总会特定的内容出现,右面却没有。于是自然就想到了反向预搜索。
    2009-12-12
  • 编写高质量的js之正确理解正则表达式回溯

    编写高质量的js之正确理解正则表达式回溯

    在正则表达式实现中,回溯是匹配过程的基本组成部分,它是正则表达式如此好用和强大的根源。然而,回溯计算代价很高,如果设计失误,将导致失控。回溯是影响整体性能的唯一因素,理解它的工作原理,以及如何减小使用频率,可能是编写高效正则表达式的关键点
    2016-12-12
  • 利用正则表达式进行中文排版的实例教程

    利用正则表达式进行中文排版的实例教程

    中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面这篇文章主要给大家介绍了关于如何利用正则表达式进行中文排版的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • JAVA中正则表达式匹配,替换,查找,切割的方法

    JAVA中正则表达式匹配,替换,查找,切割的方法

    本文主要给大家介绍java正则表达式匹配,替换,查找,切割的方法,查找是用string类中的split(),字符串中的替换是replace(),感兴趣的朋友一起来学习吧
    2015-09-09
  • 正则应用之 逆序环视探索 .

    正则应用之 逆序环视探索 .

    关于环视的一些基础讲解和基本匹配原理,在正则基础之——环视这篇博客里已有所介绍,只不过当时整理得比较匆忙,没有涉及更详细的匹配细节。这里仅针对逆序环视展开讨论
    2012-10-10

最新评论