2010-07-12 48 views
3

我知道.match()返回匹配數組,如果沒有找到匹配項,則返回null。但是,如何訪問與.match一起使用的捕獲組值呢?需要幫助理解Javascript的.match方法

例如:

var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)'); 

假設正則表達式匹配不止一次,怎樣訪問在特定匹配捕獲組的值?

謝謝!

回答

4

使用數組表示法:[0][1]

var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)'); 
if(val != null) { 
    var first = val[0]; 
    //... 
} 
+1

權,但如果正則表達式匹配多個項目,VAL本身就已經是一個數組吧?那麼val [0]就會返回第一個匹配。 – Alex 2010-07-12 18:46:23

+1

正確。如果'match'的返回值非空,則它是一個數組。 – 2010-07-12 19:05:02

+1

你們的對話只是澄清了剛剛讓我感到困惑的事情。謝謝。 – govinda 2012-08-19 02:16:29