我有以下我想要匹配的字符串:
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。
答案 0 :(得分:1)
您的数字匹配部分需要在反斜杠上加倍:
pathRegExPattern = '(' + docTypeHome + ')' + '(->)' + '(\\d+)';
当您从字符串部分构建正则表达式时,字符串语法本身将“吃掉”反斜杠。因此,你正在清理的正则表达式只是d+
,没有反斜杠。
“31”(或最终的数字)将在parsedResult[3]
。请注意,它将是一个字符串,因此如果您需要它是一个数字,您需要先通过Number
构造函数或parseInt()
或其他任何内容进行转换。