Email:longsu2010 at yeah dot net
js String의 교체 함수의 함수 서명은 다음과 같습니다.
replace(match/* string OR 정규식*/, replacement/* string OR function*/)
문자열에서 일치하는 항목을 교체로 바꾸고 교체된 문자열을 반환하는 함수입니다.
첫번째 매개변수가 문자열이면 할말은 없지만, 문자열을 교체할 때 match(first) 함수가 한 번만 실행된다는 점 기억해두세요.
따라서 첫 번째 매개변수는 일반적으로 정규식입니다. 예:
replace(/a/g, "b") // 문자열의 모든 a를 b로 바꿉니다.
두 번째 매개변수는 문자열일 수 있으며, 여기에는 첫 번째 매개변수의 정규 표현식 그룹이 포함될 수 있습니다. 예:
replace(/(a){2,2}/g, "$1 b") // 문자열의 모든 aa를 ab로 바꿉니다.
두 번째 매개변수가 함수라면 함수의 매개변수는 무엇인가요? 예:
"bbabc".replace( /(a )(b)/g, function(){
console.log(arguments)
})
매개변수는 다음과 같습니다. 1 , 전체 정규식과 일치하는 문자입니다.
2. 첫 번째 그룹이 일치하는 콘텐츠, 두 번째 그룹이 일치하는 콘텐츠... 마지막 그룹까지 계속됩니다.
3. 소스 문자열에서 일치하는 항목의 아래 첨자(위치)입니다.
4. 문자열
에서 파생되었으므로 예제의 출력은
["ab", "a", "b", 2, "bbabc"]
Second 매개변수의 반환값은 소스 문자열에서 대체됩니다. 왜냐하면 js 함수에 반환값이 없으면 함수를 호출하면 unundefined가 되기 때문입니다. 소스 문자열.
첫 번째 매개변수가 문자열이고 두 번째 매개변수가 함수인 경우 그룹화 없이 첫 번째 매개변수가 정규 표현식으로 처리되므로 두 번째 매개변수의 매개변수를 결정할 수 있습니다.
기사에 "소스 문자열로 대체"(소스 문자열은 템플릿 역할만 하며 실제로 변경되지 않으며 문자열은 불변 변수임)와 같은 부적절한 표현이 있습니다. 모든 사람.