Unescape逃脱了正则表达式的价值

时间:2016-08-09 11:04:36

标签: javascript jquery regex escaping

我有一个像这样的转义值:

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而没有这个函数做出的转义。

0 个答案:

没有答案