1

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

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。

4

1 回答 1

1

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

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

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

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

于 2012-12-27T20:25:22.063 回答