vue2实现提取字符串数字并修改数字样式(正则表达式)

如果你要在循环中提取 item.companyName 中的数字,并且希望为这些数字改变颜色和边距,可以对每个 item 进行处理。此处是一个实现示例:

<template>  
  <div>  
    <div class="box" v-for="(item, index) in coldBaseInfo.stationModelList" :key="index">  
      <div class="boxright">  
        <div class="companyName">  
          <span v-html="formatCompanyName(item.companyName)"></span>  
        </div>  
      </div>  
    </div>  
  </div>  
</template>  

<script>  
export default {  
  props: {  
    coldBaseInfo: {  
      type: Object,  
      required: true,  
    },  
  },  
  methods: {  
    formatCompanyName(companyName) {  
      // 正则表达式提取数字  
      const numberPattern = /\d+/g;   
      // 使用 replace 生成带样式的 HTML  
      return companyName.replace(numberPattern, (match) => {  
        return `<span style="color: red; margin-left: 5px;">${match}</span>`;  
      });  
    },  
  },  
};  
</script>  

<style scoped>  
.box {  
  /* 盒子的样式 */  
}  
.boxright {  
  /* 右边内容的样式 */  
}  
.companyName {  
  /* 公司名称的样式 */  
}  
</style>  

代码解释:

  1. 模板部分

    • 通过 v-for 循环遍历 coldBaseInfo.stationModelList。每一项的 companyName 被传入 formatCompanyName 方法处理。
    • 使用 v-html 指令将处理后的结果渲染到页面中。这允许你将带有样式的HTML代码插入。
  2. 计算方法

    • formatCompanyName 方法接收 companyName,使用正则表达式 /\d+/g 提取其中的数字。
    • replace 方法用于将提取到的数字替换为一个带有样式的 <span> 标签,这里设置了红色字体和适当的左边距。
  3. 样式

    • <style> 标签内部,可以为盒子及其他元素添加合适的样式。

注意事项:

  • 请确保 companyName 中的数字不会为空。此代码仅适用于各 companyName 中含有数字的情况。
  • 使用 v-html 时要小心潜在的XSS攻击,确保传入的字符串是安全的且没有恶意代码。如果你不放心,也可以考虑其他方法,比如使用字符串拼接和 Vue 的 :style:class
相关推荐
逐·風3 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫3 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦4 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
GIS程序媛—椰子5 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山5 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享5 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
程序媛小果5 小时前
基于java+SpringBoot+Vue的旅游管理系统设计与实现
java·vue.js·spring boot
从兄6 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
凉辰7 小时前
设计模式 策略模式 场景Vue (技术提升)
vue.js·设计模式·策略模式
清灵xmf7 小时前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询