vue页面实现文本关键字检索,关键字高亮显示及定位功能
<template>
<div id="app">
<div class="container">
<div class="header">
<input type="text" v-model="keyword">
<div class="match-num">{{ currentIdx }} / {{ matchCount }}</div>
<button @click.stop="searchLast">上一个</button>
<button @click.stop="searchNext">下一个</button>
</div>
<search-highlight
class="search-highlight"
ref="search"
@current-change="currentChange"
@match-count-change="matchCountChange"
:content="content"
regExp
:keyword="keyword">
</search-highlight>
</div>
</div>
</template>
<script>
import SearchHighlight from './components/SearchHighlight.vue'
export default {
name: 'app',
components: {
SearchHighlight
},
data () {
return {
keyword: '明月',
currentIdx: 0,
matchCount: 0,
content: `
春江花月夜
[唐] 张若虚
春江潮水连海平,海上明<b>月</b>共潮生。
滟滟随波千万里,何处春江无月明!
江流宛转绕芳甸,月照花林皆似霰;
空里流霜不觉飞,汀上白沙看不见。
江天一色无纤尘,皎皎空中孤月轮。
江畔何人初见月?江月何年初照人?
人生代代无穷已,江月年年望相似。
不知江月待何人,但见长江送流水。
白云一片去悠悠,青枫浦上不胜愁。
谁家今夜扁舟子?何处相思明<b>月</b>楼?
可怜楼上月徘徊,应照离人妆镜台。
玉户帘中卷不去,捣衣砧上拂还来。
此时相望不相闻,愿逐月华流照君。
鸿雁长飞光不度,鱼龙潜跃水成文。
昨夜闲潭梦落花,可怜春半不还家。
江水流春去欲尽,江潭落月复西斜。
斜月沉沉藏海雾,碣石潇湘无限路。
不知乘月几人归,落月摇情满江树。`,
}
},
mounted () {
let keywords = ['明月', '江', '春']
const map = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {})
keywords = keywords.filter(word => word).map(word => {
return word.split('').map(s => map[s] ? `\\${s}` : s).join('[\\s\\n]*')
})
this.keyword = keywords.join('|')
},
methods: {
searchLast () {
this.$refs.search.searchLast()
},
searchNext () {
this.$refs.search.searchNext()
},
matchCountChange (count) {
this.matchCount = count
},
currentChange (idx) {
this.currentIdx = idx
},
}
}
</script>
posted on 2022-08-17 08:46 zyp_java_net 阅读(1305) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?