想要全文搜索关键字匹配,这款插件绝对适合你

jQuery
290
0
0
2022-04-24
标签   jQuery插件

想要全文搜索关键字匹配,这款插件绝对适合你

mark.js

很多时候我们的网页中可能需要做全文搜索的功能,自己写也是可以的,但是你不得不要熟悉正则,还要考虑性能、效果......

不如我们节省下这个精力和脑力,来试试这款功能强大,性能优异的插件mark.js

想要全文搜索关键字匹配,这款插件绝对适合你

简介:

mark.js是一款js的文本高亮插件。它可以用来动态地标记搜索词或自定义正则表达式,并为您提供一些内置选项,如:动态支持、独立的单词搜索、自定义同义词、iframe支持、自定义过滤器、精度定义、自定义元素、自定义类名等等。

使用方法:

直接引入页面就可以了,作者还贴心的准备了jsES5和jsES6版本,当然也有jquery版本。

我们来看下几个简单的用法,原生js方法大同小异。

mark()

高亮自定义搜索词

$(".context").mark(keyword , [options]);
示例:$(".context").mark("test"); // 标记 "test"关键字, "context"类必须存在

参数:

keyword

类型: string或者array或者string

这个关键字将被标记. 你也可以传一个多个关键字的数组. 注意关键字将被转义. 如果你不希望关键字转义可以使用 markRegExp() 方法.

options

类型:object

因为篇幅有限,我这里介绍几个关键配置参数

  • element:包裹关键字的元素,默认为mark元素
  • className:包裹元素上的className,默认为空
  • exclude:忽略元素,数组类型。数组可为元素,类名,id名,数组内的元素将被忽略标记。
  • separateWordSearch:是否以空格分割查询词,默认true。可查询多个关键字

markRegExp()

更强大的查找方法,可以根据自己定义的正则表达式来匹配内容。这个方法还可以实现更多,更强大的功能。

$(".context").markRegExp(regexp ,[options]);

参数和mark()方法基本相同。

示例:$(".context").markRegExp(/lorem/gmi);

markRanges()

一个包含开始位置和长度属性的数组对象。注意:开始位置必须指定,包含空格。

$(".context").markRanges(ranges [, options]);
示例:$(".context").markRanges([{ start: 15, length: 5}, { start: 25: length: 8}]); // 在 15-20 和 25-33范围内标记

unmark()

移除由 mark.js.标记的元素,恢复为未标记状态。如果你想每次搜索,去除上次标记结果,记得每次搜索前调用。

兼容性:

mark.js可以正常在所有现代浏览器上运行

他被广泛测试在:

  • Firefox (30+)
  • Chrome (30+)
  • Opera (12+)
  • Safari (5+)
  • Edge (13+)
  • IE (9+)

详细内容可以在官网查看api

官网网址 https://markjs.io/