一个简单的javascript正则表达式反向引用

时间:2012-12-27 20:23:14

标签: javascript regex backreference

我有以下我想要匹配的字符串:

REQS_HOME->31

以下Javascript代码尝试匹配此内容:

pathRegExPattern = '(' + docTypeHome + ')' + '(->)' + '(\d+)';
parsedResult = pathCookieValue.match(pathRegExPattern);
cookieToDelete = docType + '_ScrollPos_' + $3;
alert(parsedResult);  // output - null

假设如下:

docTypeHome = "REQS_HOME"
pathCookieValue = "REQS_HOME->31"

首先,我没有正确调用我的匹配功能。其次,如何使用反向引用运算符访问我尝试匹配数字值的值?

我需要提取值31。

1 个答案:

答案 0 :(得分:1)

您的数字匹配部分需要在反斜杠上加倍:

pathRegExPattern = '(' + docTypeHome + ')' + '(->)' + '(\\d+)';

当您从字符串部分构建正则表达式时,字符串语法本身将“吃掉”反斜杠。因此,你正在清理的正则表达式只是d+,没有反斜杠。

“31”(或最终的数字)将在parsedResult[3]。请注意,它将是一个字符串,因此如果您需要它是一个数字,您需要先通过Number构造函数或parseInt()或其他任何内容进行转换。