>웹 프론트엔드 >JS 튜토리얼 >JavaScript 함수 replacement_javascript 기술에 대한 심층적인 이해

JavaScript 함수 replacement_javascript 기술에 대한 심층적인 이해

WBOY
WBOY원래의
2016-05-16 17:40:341065검색

replace 함수는 두 개의 매개변수를 허용합니다. 첫 번째 매개변수는 문자열 또는 정규식입니다. 첫 번째 매개변수는 문자열 또는 함수도 허용합니다.

우선, 첫 번째 매개변수가 문자열인 경우 더 이상 "I am a boy"라고 말할 필요가 없습니다.replace("boy","girl") 출력은 "I am a girl"입니다. . 여기서 제가 이야기하고 싶은 것은 첫 번째 매개변수가 정규인 경우입니다. 정규식의 경우 전역(global//g)인지 여부에 따라 교체 동작이 먼저 결정됩니다. 모두이면 모두 교체되며, 비전역이면 첫 번째로 일치하는 문자열만 교체됩니다. 예:

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

"하하".replace(/bw b/g , "He") // He He

"Ha Ha".replace(/bw b/, "He") //He Ha

1: 두 번째 매개변수는 문자열입니다.

정기적인 교체를 위해 특수 마커 $가 합의되었습니다.

1.$i (i:1-99): 왼쪽에서 오른쪽으로 일반 하위 표현식과 일치하는 텍스트를 나타냅니다.
2.$&: 정규식과 일치하는 전체 텍스트를 나타냅니다.
3.$`(`:스위치 스킬 키): 일치하는 문자열의 왼쪽 텍스트를 나타냅니다.
4.$'(':작은따옴표): 일치하는 문자열의 오른쪽에 있는 텍스트를 나타냅니다.
5.$$: $ 전송을 의미합니다.
몇 가지 데모는 다음과 같습니다.

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

"boy & girl".replace(/(w )s*&s*(w )/g,"$2 & $1") //소녀 & 소년

"boy".replace(/w /g, "$& -$&") // 소년-소년

"javascript".replace(/script/,"$& != $`") //javascript != java

"javascript" .replace(/java/,"$&$' is ") // javascript는 스크립트

2: 두 번째 매개변수는 함수입니다:

JavaScript1.2에서 구현된 ECMAScript3의 함수 메소드를 사용하는 것이 좋습니다. 교체 메소드가 실행될 때마다 함수가 호출되며 반환 값은 새로운 값으로 사용됩니다. 대사.

함수 매개변수 요구사항:

1. 첫 번째 매개변수는 각 일치 항목의 전체 텍스트($&)입니다.
2. 중간 매개변수는 하위 표현식 일치 문자열이며, 개수는 제한되지 않습니다. ($i (i:1-99))
3. 두 번째 매개변수는 일치하는 텍스트 문자열 위치의 일치하는 첨자입니다.
4. 마지막 매개변수는 문자열 자체를 나타냅니다.
이 글은 대체의 힘에 대해 말하려는 내용입니다. 이론적인 것은 모두 무미건조한 것입니다. 모든 공허한 문제를 해결하려면 예가 필요합니다.

1: 문자열의 첫 글자를 대문자로 사용:

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

String.prototype.capitalize = function() {

return this.replace( /(^|s)([a-z])/g , function(m,p1,p2){ return p1 p2.toUpperCase();

} );

};
console.log("저는 남자입니다 !".capitalize())

출력: 나는 소년입니다!

2: "Zhang San 56점, Li Si 74점, Wang Wu 92점, Zhao Liu 84점"이라는 문자열의 점수를 추출하고 요약하여 평균 점수를 계산하고 각 개인의 평균 점수 차이를 출력합니다.

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

var s = "장산 56점, 리시 74점, 왕우 92점, 조류 84점";

var a = s.match(/d /g);

var sum = 0;

for (var i = 0 ; i < a.length; i ){

sum =parseFloat(a[i])

}



var avg = sum / a.length;



function f(){

var n =parseFloat(arguments[1]);
n개의 "점" "(" ((n > 평균) ? ("평균 점수 초과" (n - 평균)) :

                                                                                포인트)";

}



var result = s.replace(/(d )fen/g, f)

console.log(결과);

출력:

Zhang San은 56점(평균보다 20.5점 낮음), Li Si는 74점(평균보다 2.5점 낮음), Wang Wu는 92점(평균보다 15.5점 낮음), Zhao Liu는 84점(평균보다 7.5점 낮음)을 기록했습니다. 평균)점)

                                                                                                                                                       JavaScript의 교체 기능은 규칙성의 고급 적용과 결합되어 JavaScript의 교체는 더 큰 힘을 가져올 것이며 여기서는 고급 응용 프로그램의 규칙성 주장에 대해서는 다루지 않겠습니다.

출처: http://www.cnblogs.com/whitewolf/

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