여기서 텍스트 대체 함수인 대체가 적용되었습니다. 그 일반적인 구문은 아마도 모든 사람에게 익숙할 것입니다. 이제 두 번째 매개변수가 함수인 경우를 소개하겠습니다.
오늘 이 기능을 그룹에 올렸을 때 어떤 분이 빠르게 답변을 주셨고 위의 정규식이 잘못 쓰여졌다고 하더군요. "/-(w)/ g", 그리고 나서 그는 자신의 의심이 이 "()"에 있다는 것을 금방 이해했습니다. 사실 이 괄호는 매우 필요합니다:
(x)는 x를 일치시키고 $1, $2...$9라는 변수에 x를 저장합니다. 실제로 후속 호출을 용이하게 하기 위해 인덱스를 추가합니다. 이러한 괄호를 추가하지 않으면 오류가 발생합니다:
그럼 함수 매개변수의 의미를 소개하겠습니다. 왜 이 함수가 지정된 기능을 달성할 수 있나요?
ECMAScript v3에서는 replacement() 메서드의 매개변수 대체가 문자열이 아닌 함수일 수 있다고 규정합니다. 이 경우 일치하는 각 항목에 대해 함수가 호출되고 해당 함수가 반환하는 문자열이 대체 텍스트로 사용됩니다. 이 함수의 첫 번째 매개변수는 패턴과 일치하는 문자열입니다. 다음 인수는 패턴의 하위 표현식과 일치하는 문자열이며 이러한 인수는 0개 이상 있을 수 있습니다. 다음 매개변수는 일치가 발생하는 stringObject의 위치를 선언하는 정수입니다. 마지막 매개변수는 stringObject 자체입니다.
조금 귀찮은 것 같습니다. 예:
즉, 위의 strMatch 값은 -r인데, 이는 일반 패턴과 일치하는 문자열입니다(이 함수의 첫 번째 매개변수는 패턴과 일치하는 문자열입니다). ,
위 p1의 값은 r이며, 이는 우리가 지정하는 인덱스인 - (다음 매개변수는 패턴의 하위 표현식과 일치하는 문자열입니다) ——“(w)”.
그렇습니다. 앞으로 이 기능이 어떤 역할을 할지 알 것 같습니다. 하하, 그렇군요. 추가 제안도 환영합니다.