{hero}

DataTable.util.escapeRegex()

从 DataTables 1.11 起

转义正则表达式字符串中的特殊字符。

说明

使用正则表达式时,转义输入以便格式化字符串通常非常有用,而这个字符串包含正则表达式中具有特殊含义的字符,它仅仅执行字符匹配。Javascript 的正则表达式中有多个特殊字符,DataTables 需要内部转义这些字符串(用于用户输入的搜索数据)- 此方法外部公开此功能。

这是一个实用方法,由扩展程序和插件作者提供使用。使用此方法不会直接影响 DataTable 或 DataTables 的配置。DataTables 在内部使用它,并通过公共 API 提供它,以帮助提升扩展程序作者的代码重用率。

请注意,这是一个静态函数,通过 DataTable$.fn.dataTable 对象访问它,而不是 API 实例。无论何时,即使页面上尚未创建任何 DataTables,您都可以访问它。

在 DataTables 1.11 之前,只能通过 $.fn.dataTable 对象访问这个方法。从 1.11 起,可以使用 DataTable$.fn.dataTable

类型

函数 escapeRegex( str )

说明

转义正则表达式字符串中的特殊字符。

返回

转义的字符串

示例

使用 select 元素执行转义匹配搜索

var table = new DataTable('#myTable');

table
	.columns()
	.indexes()
	.flatten()
	.each(function (i) {
		var column = table.column(i);
		var select = $('<select><option value=""></option></select>')
			.appendTo($(column.footer()).empty())
			.on('change', function () {
				// Escape the expression so we can perform a regex match
				var val = $.fn.dataTable.util.escapeRegex($(this).val());

				column.search(val ? '^' + val + '$' : '', true, false).draw();
			});

		column
			.data()
			.unique()
			.sort()
			.each(function (d, j) {
				select.append('<option value="' + d + '">' + d + '</option>');
			});
	});

相关

以下选项直接相关,对于您的应用程序开发而言也可能有用。