2014-05-22 4 views
2

나는 내 자바 스크립트 코드에 정의 된 다음과 같은 문자열을 가지고 :String.match() 메서드가 여러 값을 반환하는 이유는 무엇입니까?

var s = "10px solid #101010"; 

지금, 나는 단지 숫자 초기 부분을 싶어. 이 purporse 위해, 나는 다음과 같은 시도 :

s.match(/^([0-9]+)/g); 

그것은 매력처럼 작동을하고, 그 결과는 ['10']했다.

s.match(/^([0-9]+)/); 

내가 같은 결과를 기대하지만, 내가 잘못 했어 다음과 같이

이 테스트 후, 나는 또한 g 수정을 제거하기 위해 노력했다. 결과는 두 개의 솔루션을 가진 배열입니다 : ['10', '10'].

누군가 내게 이유를 설명 할 수 있습니까? 두 번째 경우 배열의 마지막 요소의 의미는 무엇입니까?

+1

좋은 질문입니다. 실제로 실제로 이미 좋은 답변이 있습니다. http://stackoverflow.com/questions/18577704/why-capturing-group-results-in-double-matches-regex – Robin

+0

^^ 허용되는 답변이 실제로 수행합니다. 이것에 대한 아주 좋은 설명을 가지고 있습니다, 중복처럼 보입니다. – adeneo

+0

"캡쳐 그룹"의 개념을 분명히하지 않았다면, 당신이 인용 한 질문의 대답이 (내 의견으로는) 적절하지 않다 ... –

답변

관련 문제