如何使用正则表达式在数据表中搜索完全匹配

Yajuvendra Pratap Singh

我想搜索完全匹配的数据表的特定列数据,但是我的正则表达式无法正常工作。我希望它与单词点单词即Jhon.smith一起使用,但它也仅与一个单词一起工作,即结果仅在输入“ Jhon”时出现。请您帮我建议,将不胜感激。

    initComplete: function () {
       // Apply the search
        this.api().columns(8).every( function () {
            var that = this;

            $( 'input', this.footer() ).on( 'keyup change clear', function () {
                if ( that.search() !== this.value ) {
        var searchTerm = this.value.toLowerCase(),
            regex = '\\b' + searchTerm + '\\b'; 
                    that
                        .search( regex, true, false )
                        .draw();
                }
            } );
        } );
    }

非常感谢

nvkrj

除了@Barmar的答案外,您还需要在搜索词中转义正则表达式的特殊字符。例如,在搜索词“ Jhon.smith”中,点字符“。”。是正则表达式中的特殊字符。它需要这样逃脱:“ Jhon \ .smith”才能正常工作。

由于您正在使用数据表,因此可以像下面这样使用它的内置正则表达式转义功能:

var searchTerm = this.value.toLowerCase();
var regex = $.fn.dataTable.util.escapeRegex(searchTerm);

现在应用@Barmar的答案,如果您希望匹配“ Jhon.smith asdf”之类的字符串,则需要添加此字符串以进行完全匹配:

regex = '^' + regex + '$';

结合两者,您将获得:

var searchTerm = this.value.toLowerCase();
var regex = '^' + $.fn.dataTable.util.escapeRegex(searchTerm) . '$';

您也不需要将searchTerm变量转换为小写,因为您可以将trueDataTable的search()函数作为第四个参数传递来执行不区分大小写的搜索。而且由于该参数的值为true默认值,因此您甚至无需传递该参数,除非您已全局修改了DataTables配置。

因此,您的脚本将变为:

initComplete: function () {

    // Apply the search
    this.api().columns(8).every( function () {
        var that = this;
        $( 'input', this.footer() ).on( 'keyup change clear', function () {
            if ( that.search() !== this.value ) {
                regex = '^' + $.fn.dataTable.util.escapeRegex(this.value) + '$'; 
                that
                    .search( regex, true, false )
                    .draw();
            }
        });
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式在数据表中查找名称

搜索完全匹配并突出显示jQuery数据表正则表达式

正则表达式在Rmarkdown中搜索数据表

使用Jquery数据表禁用智能搜索/正则表达式

正则表达式搜索以搜索完全匹配

正则表达式,如何排除匹配中的搜索

仅在正则表达式完全匹配时如何匹配正则表达式

如何使用搜索/替换在Vim中访问正则表达式匹配项?

C#将正则表达式匹配插入数据表

如何使用正则表达式来匹配文本框中给定的数据库和表名

正则表达式 - 完全匹配

正则表达式完全匹配

正则表达式完全匹配

正则表达式完全匹配

数据表中带括号的正则表达式

从jQuery数据表中的正则表达式元素ID获取值

在jQuery中查找数据表的正则表达式的所有元素

不使用正则表达式过滤多个数据表

正则表达式搜索匹配不使用组

正则表达式环视:如何使用可选的前瞻提取完全匹配

如何在文档中使用正则表达式对字符串进行完全匹配

如何使用Golang正则表达式查找完全匹配的单词?

存在多个花括号时如何使用正则表达式获取完全匹配的短语

如何在PHP中使用正则表达式找到完全匹配的内容?

如何使用正则表达式使用正则表达式匹配以“ $”结尾的内容?

使用正则表达式和JavaScript获取字符串中的完全匹配

如何使用正则表达式在Visual Studio Code中搜索以仅匹配未注释的代码?

如何在正则表达式的MongoDB中搜索与给定字符串的匹配?

如何在字符串中搜索正则表达式模式的重叠匹配