js实现模糊搜索与关键字高亮

一、由接口实现模糊搜索
后端接口实现模糊搜索,只需要实现关键字高亮即可,以uniapp请求为例

getList() {
   
	uni.showLoading({
   
		title: '加载中'
	});
	let data = {
   }//需要传的参数
	uni.request({
   
		url: url,//需要请求的接口
		method: "GET",
		header: {
   
			'X-JWT-TOKEN': this.token
		},//接口需要传的token 
		data: data,
		success: (res) => {
   //成功返回
			uni.hideLoading();//关闭加载的圈圈
			var list = res.data.Results;//返回的数组
			// 设置关键字高亮需要额外添加新字段
			list.forEach((item) => {
   
				this.$set(item,'Text', item
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中实现多个关键字高亮、返回多个结果的模糊查询,可以使用正则表达式和Vue的computed计算属性来实现。 首先,将要查询的关键字以数组的形式保存下来,例如: ```javascript data() { return { keywords: ['Vue', '多关键字', '模糊查询'], articles: [ { title: 'Vue实现关键字高亮模糊查询', content: '...' }, { title: '使用Vue开发多关键字搜索功能', content: '...' }, ... ] } } ``` 接下来,使用computed计算属性来实现模糊查询和关键字高亮: ```javascript computed: { filteredArticles() { let articles = this.articles let keywords = this.keywords if (keywords.length > 0) { let regex = new RegExp(keywords.join('|'), 'gi') articles = articles.filter(article => { return article.title.match(regex) || article.content.match(regex) }) articles = articles.map(article => { article.title = article.title.replace(regex, '<span class="highlight">$&</span>') article.content = article.content.replace(regex, '<span class="highlight">$&</span>') return article }) } return articles } } ``` 上述代码中,先将要查询的关键字拼接成正则表达式,使用`|`作为分隔符,然后调用`match()`方法进行模糊匹配,将匹配到的文章进行关键字高亮处理,最后返回匹配到的文章数组。 最后,在模板中遍历`filteredArticles`数组,将文章渲染到页面上: ```html <template> <div> <div v-for="article in filteredArticles" :key="article.id"> <h2 v-html="article.title"></h2> <p v-html="article.content"></p> </div> </div> </template> ``` 在CSS中定义`.highlight`样式,用于显示高亮效果: ```css .highlight { color: red; font-weight: bold; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值