{hero}

DataTables.SearchOptions

DataTables 搜索选项对象。

说明

内置于 DataTables 中的搜索功能可配置,以微调执行搜索的方式。此对象描述可执行微调的选项。用于 searchsearchCols 初始化选项,此外还用于 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,'smartregex`选项,这些选项不相关。

默认值: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()搜索手册 以了解更多详细信息。