2015-10-23 21 views
0

我使用JS的替代函數來創建一個字符串內找到了項目的數組:JS |用函數替換|的意思是(A,B,C)

var term = "\\bselect\\b([^f]|f(?!rom))*?\\bfrom\\b[\\s]*?\\("; 
var modGI = "gi"; 
var myExp = new RegExp(term, modGI);  
str.replace(myExp, function(a,b,c) { myArr.push(c); return a;}); 

,因爲它是客戶端的代碼,我不能共享海峽。但是,我在許多替換函數中使用完全相同的字符串,並且它們在替換函數中完全通過以下方式很好地訪問:function(a,b){do something;返回a}; - a返回找到的文本,b返回位置。

在上面顯示的一種情況下,b返回一系列空格,所以myArr是[「」,「」,「」]。我必須使用c來訪問該號碼,這工作正常。但我不明白爲什麼這次不同,因此這個代碼是否健壯。

任何人都可以告訴我a,b和c是什麼意思嗎?

感謝

+1

[取代](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace) – Tushar

回答

1

至於在案MDN:

function(match, p1, p2, p3, offset, string) {} 

比賽 |匹配的子字符串。 (相當於上述$ &)

p1,p2,... |第n個括號內的子匹配字符串,提供了replace()的第一個參數是RegExp對象。 (對應於上面的$ 1,$ 2等)。例如,如果給出/(\ a +)(\ b +)/,則p1與\ a +匹配,而p2與\ b +匹配。

偏移量 |匹配的子字符串在被檢查的總字符串中的偏移量。 (例如,如果總字符串爲'abcd',匹配的子字符串爲'bc',則此參數爲1.)

字符串 |正在檢查的字符串總數。

See Docs Here

相關問題