2012-12-27 36 views
1

我有以下字符串,我試圖匹配:一個簡單的JavaScript正則表達式反向引用

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

您的數字匹配部需要翻倍的反斜槓值:

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

當你建立從字符串部分正則表達式,字符串語法本身會「吃」一個反斜槓。因此,你正在使用的正則表達式只是d+,沒有反斜槓。

「31」(或任何數字最終成爲)將在parsedResult[3]。請注意,它將是一個字符串,所以如果你需要它是一個數字,你需要首先通過Number構造函數或parseInt()或其他來轉換它。

+0

@rid是的謝謝我編輯:-) – Pointy

+0

優秀的解釋!謝謝! =)這樣做! –

相關問題