Teal TealUI

拼音模糊搜索util/searchPinYin

模糊搜索匹配项,支持全拼和简拼搜索。

<textarea id="input" placholder="输入所有项,一行一个。">你好
你好啊
很好
</textarea>
<input type="search" id="search" placeholder="输入搜索的内容" value="nih" />
<button onclick="output.innerHTML = searchPinYin(input.value.split('\n'), search.value, '<strong>', '</strong>').map(function (v){ return v.r; }).join('<br>')">搜索</button>
<div id="output"></div>
API
全局
Match 接口

API

全局

函数 描述
searchPinYin(inputs, search, ...)(inputs:string[], search:string, markStart?:string, markEnd?:string, encoder?:function, cache?:object):(Match[] & { r: string; index: number; })[]

模糊搜索一个列表(支持拼音)。

参数 类型 描述 默认值
inputs* string[]
search* string
markStart string "<mark>"
markEnd string "</mark>"
encoder (value: string) => string encodeHTML
cache { [key: string]: any; } { __proto__: null }

返回值

类型:(Match[] & { r: string; index: number; })[]

返回所有的匹配项组成的数组。每个匹配项是一个包含所有匹配起止位置的数组,并附加了以下属性:

  • r:当前匹配项最终拼接后的文本内容。
  • index:当前匹配项在源列表的索引。

示例

searchPinYin(["ab", "b"], "a") // [ {r: "<mark>a</mark>b", index: 0, length: 1, 0: {start: 0, end: 1, level: 1}} ]

模糊搜索一个列表(支持拼音)。

matchPinYin(input, pattern, ...)(input:string, pattern:string, cache?:object):Match[]

获取单个内容的拼音匹配结果。

参数 类型 描述 默认值
input* string
pattern* string
cache { [key: string]: any; } { __proto__: null }

返回值

类型:Match[]

返回包含所有匹配起止位置的数组。如果不匹配则返回空数组。

示例

matchPinYin("ab", "a") // [{start: 0, end: 1, level: 1}]

获取单个内容的拼音匹配结果。

formatMatch(input, matchResult, ...)(input:string, matchResult:Match[], markStart?:string, markEnd?:string, encoder?:function):string

格式化匹配结果为一个字符串。

参数 类型 描述 默认值
input* string
matchResult* Match[]
markStart string "<mark>"
markEnd string "</mark>"
encoder (value: string) => string encodeHTML

返回值

类型:string

返回拼接后的文本内容。

示例

matchPinYin("ab", [{start: 0, end: 1, level: 1}]) // "<mark>a</mark>b"

格式化匹配结果为一个字符串。

Match 接口

表示一个匹配项。

字段 类型 描述
start : number

匹配项在源字符串中的开始索引(从 0 开始)。

number

匹配项在源字符串中的开始索引(从 0 开始)。

end : number

匹配项在源字符串中的结束索引(从 0 开始)。

number

匹配项在源字符串中的结束索引(从 0 开始)。

level : number

匹配度。匹配度为精确匹配的字符数。

number

匹配度。匹配度为精确匹配的字符数。