DataTables.SearchOptions
DataTables 搜索选项对象。
说明
内置于 DataTables 中的搜索功能可配置,以微调执行搜索的方式。此对象描述可执行微调的选项。用于 search
和 searchCols
初始化选项,此外还用于 search()
和 column().search()
API 方法。
使用 Typescript 定义 将搜索选项类型定义为
interface DataTable.SearchOptions {
boundary?: boolean,
caseInsensitive?: boolean,
exact?: boolean,
regex?: boolean,
smart?: boolean
}
请注意,这些属性影响客户端上 DataTables 搜索的行为。如果您有服务器端处理(serverSide
)搜索配置完全由服务器端脚本负责。
属性
搜索选项数据对象提供了以下属性
boundary
从单词开头开始匹配。对于您希望搜索词(例如male)与Male匹配但与Female不匹配的情况,这可能很有用。在使用空格不重要的语言时也必须谨慎,例如在中文中,此选项可能导致整个段落中只有第一个字符匹配。此选项仅在启用smart
搜索时可用。
默认值:false
自:DataTables 2.0 API 示例
table.search('male', {
boundary: true
});
caseInsensitive
指示是否应执行不区分大小写的搜索(true
),或者搜索应匹配大小写(false
)。
默认值:true
自:DataTables 1.10 API 示例
table.search('Chief', {
caseInsensitive: false
});
exact
此选项修改搜索以对表中的值执行精确匹配(基于字符串) - 例如执行字符的开头到结尾,与 DataTables 默认使用的“包含”搜索不同。这对于列数据搜索特别有用 - 实际上非常不可能希望在整行中使用此选项,因为出于性能原因,它对缓存的搜索值使用字符串连接。
如果启用此选项,它将覆盖boundary
,'smart和
regex`选项,这些选项不相关。
默认值:false
自:DataTables 2.0 API 示例
table.column(1).search('Allan', {
exact: true
});
regex
指示是否将搜索词视为正则表达式。如果为false
,则输入项的任何正则表达式字符都将转义为 DataTables 运行的正则表达式。请注意,从 DataTables 2.0 开始,不建议使用此选项 - 如果您希望执行正则表达式搜索,请将搜索词作为 RegExp
对象(而不是包含正则表达式的字符串)传递。
通常,如果启用此选项,则应禁用smart
选项,因为 DataTables 自身的正则表达式会干扰此处给出的任何表达式。
默认值:false
自 DataTables 1.10 以来 具有 API 的示例
table.search('Eur.*', {
regex: true,
smart: false
});
smart
此选项用于启用和禁用 DataTables 的智能搜索选项。启用智能搜索后,您可以
- 以任何顺序搜索单词
- 用双引号括起一个字符串,以执行精确匹配(就像使用搜索引擎那样)
- 用
!
开头一个单词,进行否定搜索(即搜索将仅匹配不包含以下单词的记录)。
默认值:true
自:DataTables 1.10 API 示例
table.search('"New York" -Chief', {
smart: true
});
自定义搜索
如果用于自定义 DataTables 中内置搜索的上述选项与您的需要不符,您可以使用函数作为搜索项,从而能够在搜索中使用 100% 的自定义逻辑。参见 search()
和 搜索手册 以了解更多详细信息。