stringObj.replace(rgExp, replacementText)
매개변수
stringObj
필수입니다. 이 교체를 수행할 String 개체 또는 문자열 리터럴입니다. 문자열은 바꾸기 메소드로 수정되지 않습니다.
rgExp
필수입니다. 정규식 패턴이나 사용 가능한 플래그를 포함하는 정규식 개체입니다. String 객체 또는 리터럴일 수도 있습니다. rgExp가 정규식 개체가 아닌 경우 문자열로 변환되며 정확한 검색이 수행되며 문자열을 정규식으로 변환하려고 시도하지 않습니다.
replaceText
필수입니다. stringObj의 rgExp에서 일치하는 각 위치를 개체에 포함된 리터럴로 바꾸는 문자열 개체 또는 문자열 리터럴입니다. Jscript 5.5 이상에서는 replacementText 매개변수가 대체 텍스트를 반환하는 함수일 수도 있습니다.
설명
replace 메소드의 결과는 지정된 대체를 완료한 stringObj 객체의 복사본입니다.
다음 일치 변수 중 하나를 사용하여 최신 일치 항목을 식별하고 일치하는 문자열을 찾을 수 있습니다. 대체 문자열을 동적으로 결정해야 하는 텍스트 대체에 일치 변수를 사용할 수 있습니다.
문자 의미
$$ $(JScript 5.5 이상)
$&는 전체 패턴과 일치하는 stringObj 부분을 지정합니다. (JScript 5.5 이상)
$`은 $&로 설명되는 일치 항목 앞에 있는 stringObj 부분을 지정합니다. (JScript 5.5 이상)
$'은 $&로 설명되는 일치 항목 뒤의 stringObj 부분을 지정합니다. (JScript 5.5 이상)
$n은 n번째 부분 일치를 캡처합니다. 여기서 n은 1부터 9까지의 십진수입니다. (JScript 5.5 이상)
$nn은 nn번째 부분 일치를 캡처합니다. 여기서 nn은 01부터 99까지의 십진수 두 자리 숫자입니다. (JScript 5.5 이상)
replacementText가 함수인 경우 일치하는 각 하위 문자열에 대해 함수는 다음 m 3 매개변수를 사용하여 호출됩니다. 여기서 m은 rgExp 숫자에 캡처된 왼쪽 대괄호 수입니다. 첫 번째 매개변수는 일치시킬 하위 문자열입니다. 다음 m개의 매개변수는 검색에서 캡처된 모든 결과입니다. m 2번째 매개변수는 일치가 발생하는 stringObj 내의 오프셋이고, m 3번째 매개변수는 stringObj입니다. 결과는 일치하는 각 하위 문자열이 함수 호출의 해당 반환 값으로 대체된 문자열 값입니다.
Replace 메서드는 전역 RegExp 개체의 속성을 업데이트합니다.
예제
다음 예에서는 "The"라는 단어의 첫 번째 항목을 "A"라는 단어로 바꾸는 바꾸기 메서드를 사용하는 방법을 보여줍니다.
함수 바꾸기Demo(){
var r, re ; // 변수를 선언합니다.
var ss = "남자가 배트로 공을 쳤다.n";
ss = "야수가 글러브로 공을 잡은 동안.";
re = /The/g; 정규식 패턴.
r = ss.replace(re, "A"); // "The"를 "A"로 바꿉니다.
Return(r); // 대체된 문자열을 반환합니다.
}
또한, 바꾸기 메소드는 패턴의 하위 표현식을 바꿀 수도 있습니다. 다음 예에서는 문자열의 각 단어 쌍을 바꾸는 방법을 보여줍니다.
Function 바꾸기Demo(){
var r, re; // 변수 선언.
var ss = "스페인의 비는 주로 평야에 내립니다.";
re = /(S )(s )(S )/g; // 정규식 패턴을 만듭니다.
r = ss.replace(re, "$3$2$1") // 각 단어 쌍을 바꿉니다.
Return(r); // 결과 문자열을 반환합니다.
}
다음 예제(JScript 5.5 이상에서 실행됨)에서는 화씨에서 섭씨로 변환을 수행하고 함수를 replacementText로 사용하는 방법을 보여줍니다. 이 함수가 어떻게 작동하는지 보려면 숫자 값과 "F"가 포함된 문자열을 전달하세요(예: "물은 212에서 끓습니다").
function f2c(s) {
var test = /(d (.d*)?)Fb/g; // 초기화 모드.
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) "C");
}
)
);
}
document.write(f2c("물은 32F에서 얼고 212F에서 끓습니다."));
js는 실제로 그렇지 않습니다. for 루프를 사용하여 replacementAll 메서드를 제공하면 효율성 문제가 있어 정규식 솔루션을 제공합니다
js 코드
String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
}
메서드: string.replace(new RegExp(oldString,"gm"),newString))
gm g=global, m=multiLine, 대략적인 메서드는 다음과 같으며 지정된 모든 문자열을 바꿀 수 있습니다
JS를 확인하는 또 다른 간단한 방법:
브라우저 주소 표시줄에
입력 javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad"))
This 더 쉽습니다;), 여러 줄에 편리할지 모르겠습니다
orgStr.replace(new RegExp(findStr, 'g'), replacementStr)
모두 교체할 수 있어야 합니다
정규식을 사용하지 않는 경우
orgStr.replace(findStr, replacementStr)는 첫 번째 것만 바꿀 수 있습니다.