2014-02-14 101 views
1

當我運行的Javascript正則表達式的非捕獲組返回

var episode_pattern = /(?:EPISODE\:\s*\#)([0-9]*)/g; 
console.log(episode_pattern.exec("EPISODE: #3")); 

我回來兩個「插曲:#3」,並在比賽中「3」。
但是使用(?:我希望只在匹配數組中獲得「3」。

回答

4

返回數組的第一個元素(元素0)始終爲匹配的整個字符串。換句話說,如果您根本沒有任何組,或者如果您的組未被捕獲,則返回元素0.如果添加組而沒有另外更改正則表達式,則仍然會返回元素中的相同整體匹配0,然後組從元素1開始。