>웹 프론트엔드 >JS 튜토리얼 >jQuery_jquery의 replacement() 메소드에 대한 간략한 설명

jQuery_jquery의 replacement() 메소드에 대한 간략한 설명

WBOY
WBOY원래의
2016-05-16 15:59:192116검색

오늘 jquery 소스코드를 읽다가 이전에는 전혀 눈치 채지 못했던 문제를 발견했는데, 그것은 replacement()의 두 번째 매개변수가 함수일 때의 문제입니다. ()도 함수일 수 있는데 어떻게 동작하는지 모르겠네요. 오늘 소스코드에서 replacement()의 두 번째 매개변수로 사용되는 함수를 보고 읽기 어렵다고 느껴서 기획하게 되었습니다. 이 기능을 정리하려면...

문법

stringObject.replace(regexp/substr, 교체)

반환값

첫 번째 일치 항목이나 원하는 정규식 일치 항목을 대체 항목으로 대체하여 얻은 새 문자열을 반환합니다.

replace() 메서드의 매개변수 대체가 함수인 경우, 이 경우 일치하는 항목마다 함수가 호출되고, 함수에서 반환된 문자열이 대체 텍스트로 사용됩니다. 이 함수의 첫 번째 매개변수는 패턴과 일치하는 문자열입니다. 다음 매개변수는 패턴의 하위 표현식과 일치하는 문자열입니다. 이러한 매개변수는 0개 이상 있을 수 있습니다. 다음 매개변수는 일치가 발생하는 stringObject의 위치를 ​​선언하는 정수입니다. 마지막 매개변수는 stringObject 자체입니다. 이 문장은 w3cschool에서 복사한 것입니다. 지금은 위 문단이 잘 이해되지 않고, 단순히 제 말로 설명할 수 없어서 예문을 통해서만 설명하겠습니다.

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
string.replace(/(d)-([da-z])/g,function( str1, str2, str3, str4, str5){
           console.log( str1 ) // 3-i
            console.log( str2 ) // 3(첫 번째 캡처)
            console.log(str3);//i (두 번째 비캡처 그룹)
console.log(str4);//5 (문자열에 나타나는 위치와 일치)
            console.log(str5);// abc123-ii (문자열 자체)
          "I"를 반환합니다.
})

위는 제가 오늘 본 jquery 소스코드입니다

코드 복사 코드는 다음과 같습니다.

camelCase: 함수( 문자열 ) {
           return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
fcamelCase = 함수(모두, 문자) {
         return letter.toUpperCase();
};

이 기능은 당시에는 이해하지 못했는데 지금은 알 것 같은 느낌이 듭니다

그러고보니 예전에 replacement()를 사용할 때 "$1, $2" 등 당시 나에게 이상한 기호였던 이상한 기호를 만났던 게 언제인지 기억이 난다. 이제 예라이가 이 질문에 대한 답을 얻었습니다

$1, $2, $3.... 1, 2, 3을 캡처한다는 의미입니다....

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$1")); // 캡처 그룹 1(3)을 사용하여 /(d)-([da-z ])/g

$&는 정규 표현식과 일치하는 하위 문자열을 나타냅니다

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$&")) // /(d를 regexp와 일치하는 문자열 (3-i)로 바꿉니다.)-( [da-z])/g

$`는 일치하는 하위 문자열 왼쪽에 있는 텍스트를 나타냅니다

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$`")); // /(d)-를 일치하는 문자열의 왼쪽에 있는 텍스트로 바꿉니다( abc12) ([da-z])/g

$'는 일치하는 하위 문자열의 오른쪽에 있는 텍스트를 나타냅니다

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$'")) // /(d)-([를 일치하는 항목의 오른쪽에 있는 텍스트로 바꿉니다. 문자열 da-z])/g

$$는 바로 $ 기호입니다

코드 복사 코드는 다음과 같습니다.

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$$")) // $ 기호를 사용하여 /(d)-([da-z])/를 바꿉니다. ㅋ

위의 내용은 제가 대체() 메소드 사용에 대해 명확하지 않은 부분입니다. 제가 작성한 내용에 잘못된 점이 있거나 이 메소드를 더 잘 사용하는 예가 있는 경우입니다. , 공유해 주셨으면 좋겠습니다...

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.