나는 전체 문자열을 일치시키고 결과로 전체 문자열을 반환한다는 생각으로이 정규식을 작성했습니다.정규식의 길이가 2 인 이유는 무엇입니까?
당근을 포함하는 [^]
문자 클래스는 아무것도 시작하지 않는 모든 문자의 일치를 묻습니다. *
은 이것이 여러 번 발생한다고 말합니다.
그러나 내 결과는 전체 문자열과 두 번 일치합니다. 나는 1 개의 성냥을 기대한다. 뭐가 잘못 되었 니? 당신은 정규식 호출이 캡처 된 데이터 (전체 문자열)뿐만 아니라 발생하는 전체 문자열을 모두 반환을 의미합니다 (()
패턴 내부), 캡처하고있는
var regex = /([^]*)/;
var someString = "blahdy blah blah";
var result;
result = regex.exec(someString);
//why does this have a length of 2? I expect only 1 containing the entire string
console.log(result.length);
console.log(result);
나는이 일이 컴파일되는 것에 놀랐다. JS 일 이군. – FailedDev
@FailedDev 브라우저에 오류 콘솔이 없으면 작동하지 않습니다. IE는 그 중 하나가 없다는 것을 알고있는 유일한 브라우저입니다. 'console.log'를'document.writeln'으로 바꾸십시오. –
'.exec()'에 대한 문서를 읽어야합니다 : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec. 그것은 모두 거기에 설명되어 있습니다. '.match()'도 같은 방식으로 작동합니다. – jfriend00