在Datatable中搜索括号

时间:2017-02-13 15:02:24

标签: javascript filter datatable

我使用数据表(1.10.4)dataTables.columnFilter插件。

当论据bRegextrue时,我想搜索一个括号。

实际上,当我搜索一个括号并且参数bRegextrue时,似乎没有考虑这个角色,而bRegexfalse时不是这种情况。 {1}}。

.columnFilter
({
    aoColumns:[{type:"text",bRegex:true} //texte//
})

2 个答案:

答案 0 :(得分:0)

元字符:

正则表达式中使用的元字符是:

! ^ $ ( ) [ ] { } ? + * . / \ |

要搜索元字符,您必须使用:\

将其转义

例如:

regex    | Search for
-------- | ----------
/What?/  | "Wha" or "What"  
/What\?/ | "What?"  


元字符不需要在类中转义,除了:

  • /,正则表达结束。
  • ],类符号结束。
  • \,如果您搜索\


如果您想在课程中搜索-,可以将其放在课程的结尾或开头:

[a-zA-Z0-9-]

答案 1 :(得分:0)

感谢您的贡献。 我在jquery.dataTables.js文件中发现了以下条件:

    search = regex ?
        search :
        _fnEscapeRegex( search );

使用_fnEscapeRegex函数 - 在同一个文件中 - 特别是转义括号字符。 因此,要在bRegex等于true时转义括号,我刚刚在上面的代码之前添加了以下代码:

 var _escape_parenthesis = new RegExp( '(\\' + [ '(', ')'].join('|\\') + ')', 'g' );        
search = regex ? search.replace( _escape_parenthesis, '\\$1' ):search;

感谢Kaddath和Pierre Lebon对正则表达式中逃逸意义的解释。