2016-08-17 77 views
-1

爲什麼下面的代碼爲:爲什麼「ab」.match(/ ab /)返回[「ab」,「ab」]?

「ab」.match(/(ab)/);

回報這樣的:

[ 「AB」, 「AB」]

雖然ab一旦串ab,爲什麼ab陣列中出現兩次的出現?

+3

你有沒有看任何[DOCO爲'.match()'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/match) ?嘗試一下沒有括號,看看你得到什麼。 – nnnnnn

回答

8

第一個元素包含整個匹配的字符串,而下一個元素包含組匹配。試想一下:

> "somestring44".match(/[a-z]([a-z]*)/) 
["somestring", "omestring"] 
+1

該文檔在這裏:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match#Return_value – Leo

+2

* Repetitio est mater studiorum *。 http://stackoverflow.com/a/9002845/3832970似乎解釋了這一切好得多。 –