我有一个像这样的转义值:
var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' );
val.replace( _re_escape_regex, '\\$1' );
我如何在JavaScript / jQuery中取消val
,即转义一个字符串,使其可以在正则表达式中使用?
为了进一步澄清,我正在使用datatables.js插件(plugin code)。这个插件有这个功能:
/**
* Escape a string such that it can be used in a regular expression
*
* @param {string} val string to escape
* @returns {string} escaped string
*/
escapeRegex: function ( val ) {
return val.replace( _re_escape_regex, '\\$1' );
}
_re_escpae_regex
的定义是:
var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' );
在我的代码中我正在做:
var val = $.fn.dataTable.util.escapeRegex(some_unescaped_value);
现在我需要用some_unescaped_value
反转上面的escapeRegex函数所做的事情,因为我需要val
而没有这个函数做出的转义。