当前位置: 首页 > news >正文

【正则表达式】正则表达式里使用变量

const shuai = 'No'
'My Name Is ShuaiGe'.match(new RegExp(shuai, 'gi'));
//↑↑↑↑↑↑↑↑
//等同于
//↓↓↓↓↓↓↓↓
/No/gi.test('My Name Is ShuaiGe')

用作领域

  • 搜索的字符动态改变,例如↓
  • 模糊搜索
  • 例:
    • 一个文本宽,输入文本模糊搜索用户

  • 现有n条数据,文本框输入时模糊过滤
<template><inputtype="text"@input="inputEv"v-model="search"placeholder="输入用户昵称"/><h5 style="border-bottom: dashed 1px black" v-for="i in renderList">{{ i.name }}</h5>
</template>
<script setup>
import { ref } from "vue";// 假如这里有很多数据
const data = [{name: "abcsjddhfjkfkfedkfdjf",},{name: "dfefea",},{name: "fefefee",},{name: "dddwd",},{name: "dwdwd",},{name: "2233",},{name: "ewe34",},{name: "dwdw",},{name: "343dw",},{name: "2343w",},{name: "343ewd",},{name: "2344wd",},{name: "343edwd",},{name: "343wd",},{name: "e2432ew",},{name: "22ewd",},{name: "ewe243",},
];
const renderList = ref([]);
const search = ref("");/*** input事件触发*/
const inputEv = _ =>  renderList.value = filterArr(search.value, data)//开始调用过滤方法/*** 数据过滤器* @param {String} filterStr 过滤的字符串* @param {Array} arr 查询的数组* @returns Array 过滤返回的数组*/
const filterArr = (filterStr, arr) => {// 若传入空值,返回空数组if (filterStr === "") return [];const fliterData = [];arr.forEach((it) => {// 正则表达式 -> 相当于 -> /xxxx/.test(it.name) -> xxxx表示动态正则 ↓const reg = new RegExp(filterStr, "gi");const res = it.name.match(reg); //开始模糊搜索// 搜索到,push到fliterDataif (res !== null) fliterData.push(it);});// 最后返回过滤的数组return fliterData;
};
</script>

效果图

t1

在这里插入图片描述

t2

在这里插入图片描述

t3

在这里插入图片描述

http://www.lryc.cn/news/321782.html

相关文章:

  • Java中的可变参数
  • 如何实现在固定位置的鼠标连点
  • 15|BabyAGI:根据气候变化自动制定鲜花存储策略
  • 二进制安全找实习记录
  • 列表(list)篇(一)
  • spring整合Sentinel
  • MFC 自定义分发消息方法
  • FPGA的应用方向
  • 河南大学大数据平台技术实验报告二
  • Spring Cloud Gateway如何实现熔断
  • 2403d,d的com哪里错了
  • LeetCode151:反转字符串中的单词
  • Linux入门-常见指令及权限理解
  • 找工作的经验总结一——渠道与简历
  • 第 126 场 LeetCode 双周赛题解
  • 固态浸压计
  • Ubuntu上搭建TFTP服务
  • SpringBoot3框架,事件和监听器、SPI
  • sadtalker-api/
  • vue+elementUI实现指定列的单元格可编辑
  • RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间
  • 力扣---打家劫舍---动态规划
  • mac安装rust环境
  • 1058:求一元二次方程
  • GraphQL入门之一对多关联查询
  • MATLAB和Python数值和符号计算可视化物理学气体动能和粒子速度
  • 阿里云-零基础入门NLP【基于机器学习的文本分类】
  • 蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块
  • 前端跨平台开发框架:简化多端开发的利器
  • cesium.js加载模型后,重新设置旋转角度属性值