手机靓号高亮效果(Vue)

news/2024/7/19 16:32:28 标签: js, javascript, vue.js, html5

效果

效果如下,靓号部分会显示红色
在这里插入图片描述

实现思路

1、定义正则规则
2、遍历手机号,生成一个由0和1组成的11位字符串,1表示靓号,0不为靓号
3、在HTML中循环手机号,根据下标给数字添加类名light,即高亮

JS代码

javascript">getBeautifulPhone (phoneNum) {
  // 正则规则
  var regexArrs = [
    {
      regex: /(123|234|345|456|567|678|789|987|876|765|654|543|432|321){2}/,
      type: '双顺子'
    },
    {
      regex: /(\d)\1{2,}/,
      type: 'AAA'
    },
    {
      regex: /(\d{3,4})\1/,
      type: 'ABCDABCD'
    },
    {
      regex: /12345|23456|34567|45678|56789|98765|87654|76543|65342|54321|78910/,
      type: '事业靓号'
    },
    {
      regex: /(\d)\1(\d)\2/,
      type: 'AABB'
    },
    {
      regex: /(\d)(\d)\1\2/,
      type: 'ABAB'
    },
    {
      regex: /1234|2345|3456|4567|5678|6789|9876|8765|7654|6543|5432|4321/,
      type: '发达靓号'
    },
    {
      regex: /123|234|345|456|567|678|789|987|876|756|645|534|432|321/,
      type: '发达靓号'
    },
    {
      regex: /1314|520|521/,
      type: '天长地久'
    },
    {
      regex: /(?:168|369|68|69|89|96)$/,
      type: '发达靓号'
    },
    {
      regex: /(\d).*?\1.*?\1.*?\1.*?\1/,
      type: '发达靓号',
      replacer: (e, t) => {
        return e.split('').map((e) => {
          return e === t[1] ? 1 : 0
        }).join('')
      }
    }
  ]
  phoneNum = String(phoneNum)
  var phoneColors = '00000000000'
  var phoneType = ''
  for (var index = 0; index < regexArrs.length; index++) {
    var item = regexArrs[index]
    var regex = item.regex
    var type = item.type
    var replacer = item.replacer
    var isMatched = phoneNum.match(regex)
    if (isMatched) {
      if (replacer) {
        phoneColors = replacer(phoneNum, isMatched)
      } else {
        phoneColors = new Array(11).fill(0).map((num, i) => {
          return isMatched.index <= i && i < isMatched.index + isMatched[0].length ? 1 : 0
        }).join('')
      }
      phoneType = type
      break
    }
  }
  return { phoneNum, phoneColors, phoneType }
}
this.phoneInfo = this.getBeautifulPhone(17688888280)
// {phoneNum: '17688888280', phoneColors: '00011111000', phoneType: '发达靓号'}

HTML代码

javascript"><div class='phone'>
  // 高亮的添加类名light
  <span
	v-for="(num, i) in phoneInfo.phoneNums"
	:key="i"
	:class="{light: phoneInfo.phoneColors[i] == 1}">
    {{num}}
  </span>
</div>

CSS代码

javascript">.light{
  color: red;
}

http://www.niftyadmin.cn/n/1410422.html

相关文章

(笔记)Socket设置非阻塞方式

1. 在linux C中可以将socket设置为非阻塞方式,代码: int cflags fcntl(socket_df,F_GETFL,0); fcntl(socket_df,F_SETFL, cflags|O_NONBLOCK); 当然也可以将socket设置为阻塞方式,代码: int cflags fcntl(socket_df,F_GETFL,0); fcntl(socket_df,F_SETFL, cflags&~O_NONB…

TikTok品牌出海:打造独特内容,提升品牌影响力

随着社交媒体的迅猛发展&#xff0c;TikTok作为全球最热门的短视频平台之一&#xff0c;为品牌出海提供了独特的机遇。然而&#xff0c;要在TikTok上成功推广品牌&#xff0c;关键在于创造出引人注目、有吸引力的内容。本文Nox聚星将和大家探讨在TikTok上&#xff0c;什么样的内…

vue-quick-calendar—Vue超实用日历组件(带示例图,注释超详细~)

效果图 本日历组件支持&#xff1a; 1. 标记日期 2. 选中日期 3. 切换月份 4. 上月底、下月初日期显示 5. 代码复制即可使用 6. 支持npm引入&#xff0c;npm传送门&#xff1a;vue-quick-calendar 本示例为PC端&#xff0c;预处理器使用SCSS&#xff0c;移动端请自行修改样式哦…

创建完整的Vite + Vue3 + TypeScript + ESLint + prettierrc + Sass项目模版

相关网站 1. Vite中文官网&#xff1a;Vite中文官网 2. Vue3中文官网&#xff1a;Vue3中文官网 3. Element Plus官网&#xff1a;Element Plus官网 一、创建项目 安装Vite # npm npm init vitejs/app# yarn yarn create vitejs/app新建Vue3项目 # npm 6.x npm init vite…

手写简版Vue

学习了Vue之后&#xff0c;根据自己的理解&#xff0c;手写了简版Vue&#xff0c;希望对正在学习Vue源码的初学者有所帮助&#xff0c;一起加油&#xff01; 语雀访问地址&#xff1a;手写Vue HTML <!-- 声明meta&#xff0c;不然会乱码 --> <meta http-equiv"…

mysql-cluster 安装配置

mysql-cluster免编译包下载&#xff1a;https://dev.mysql.com/downloads/file/?id469881 新版本支持只把索引和用到的数据加载到内存&#xff0c;而不是老版本的整个数据库都得加到内存中 wget https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.6-…

封装uniapp全局弹窗并绑定到原型上

调用方式 // main.js中引入 import ./popup// Toast // 1、带成功图标提示框 this.$Toast(success, 提交成功&#xff01;, () > {// 提示框关闭后 }) // 2、不带任何图标提示框 this.$Toast(none, 请输入手机号, () > {// 提示框关闭后 }) // 3、带loading图标提示框 t…

oauth2-server-php-docs 概念

PHP的OAuth2服务器库 将OAuth2.0干净地安装到您的PHP应用程序中。 从GitHub 下载代码开始。 要求 这个库需要PHP 5.3.9。然而&#xff0c;有一个稳定的版本和开发分支的PHP 5.2.x-5.3.8为好。 安装 这个库遵循zend PSR-0标准。有一些自动加载器可以自动加载这个库&#xff0c;但…