replace 메서드
정규식이나 검색 문자열을 사용하여 텍스트를 바꾼 문자열의 복사본을 반환합니다.
function replace(rgExp : RegExp, replaceText : String) : String
인수
rgExp
필수적 요소로서, 정규식 패턴 및 적용 가능한 플래그를 포함하는 Regular Expression 개체의 인스턴스입니다. String 개체 또는 리터럴일 수도 있습니다. rgExp가 Regular Expression 개체의 인스턴스가 아니면 문자열로 변환되고 정확한 검색이 수행됩니다. 문자열이 정규식으로 변환되지는 않습니다.replaceText
필수적 요소로서, 현재 문자열 개체의 rgExp와 일치하는 모든 대상을 대체할 텍스트가 포함된 String 개체 또는 문자열 리터럴입니다. JScript 5.5 이상에서 replaceText 인수는 대체 텍스트를 반환하는 함수일 수도 있습니다.
설명
replace 메서드를 사용하면 대체 후 현재 문자열 개체가 복사됩니다.
다음의 일치 변수 중 하나를 사용하여 최근의 일치 대상과 원본 문자열을 확인할 수 있습니다. 일치 변수는 대체 문자열을 동적으로 결정해야 하는 텍스트 대체에 사용할 수 있습니다.
Characters |
의미 |
---|---|
$$ |
$(JScript 5.5 이상) |
$& |
전체 패턴이 일치하는 현재 문자열 개체의 일부를 지정합니다. (JScript 5.5 이상) |
$` |
$&로 표시된 일치 항목 앞에 있는 현재 문자열 개체의 위치를 지정합니다. (JScript 5.5 이상) |
$' |
$&로 표시된 일치 항목 뒤에 있는 현재 문자열 개체의 위치를 지정합니다. (JScript 5.5 이상) |
$n |
n번째 캡처된 부분 일치 항목이며, 여기서 n은 1부터 9까지의 한 자리 10진수입니다. (JScript 5.5 이상) |
$nn |
nn번째 캡처된 부분 일치 항목이며, 여기서 nn은 01부터 99까지의 두 자리 10진수입니다. (JScript 5.5 이상) |
replaceText가 함수인 경우 일치하는 각 부분 문자열에 대해 함수는 m + 3번째 뒤의 인수로 호출됩니다. 여기서 m은 rgExp에서 왼쪽 캡처 괄호의 수입니다. 첫 번째 인수는 일치하는 부분 문자열입니다. 다음 m개의 인수는 검색을 통해 발생한 모든 캡처입니다. 인수 m + 2는 일치가 발생한 현재 문자열 개체 내의 오프셋이며 인수 m + 3은 현재 문자열 개체입니다. 결과는 일치하는 각 부분 문자열을 함수 호출의 해당 반환 값으로 대체하여 생성되는 문자열 값입니다.
replace 메서드는 전역 RegExp 개체의 속성을 업데이트합니다.
예제
다음 예제에서는 replace 메서드를 사용하여 "the"의 모든 인스턴스를 "a"로 바꾸는 방법을 보여 줍니다.
function ReplaceDemo()
{
var s = "The batter hit the ball with the bat ";
s += "and the fielder caught the ball with the glove.";
// Replace "the" with "a".
var re = /the/g;
var r = s.replace(re, "a");
return(r);
}
또한 replace 메서드는 패턴에서 부분식을 대체합니다. 다음 예제에서는 문자열의 각 단어 쌍을 바꿉니다.
function ReplaceDemo(){
var s = "The quick brown fox jumps over the lazy dog.";
// Create regular expression pattern.
var re = /(\S+)(\s+)(\S+)/g;
// Exchange each pair of words.
var r = s.replace(re, "$3$2$1");
return(r);
}
// Output: quick The fox brown over jumps lazy the dog.
다음 예제는 JScript 5.5 이상에서 작동하며 화씨를 섭씨로 변환합니다. 또한 대체 텍스트를 반환하는 함수를 사용하는 방법을 보여 줍니다. 이 함수의 작동 방식을 보려면 "Water boils at 212F"와 같이 "F" 바로 앞에 숫자가 있는 문자열을 전달합니다.
function f2c(s1) {
// Initialize pattern.
var test = /(\d+(\.\d*)?)F\b/g;
// Use a function for the replacement.
var s2 = s1.replace(test,
function($0,$1,$2)
{
return((($1-32) * 5/9) + "C");
}
)
return s2;
}
print(f2c("Water freezes at 32F and boils at 212F."));