replace

요약
패턴에 일치하는 부분의 일부 혹은 전체를 교체
Tags
변환
검색
 
 
 
str.replace(regexp|substr, newSubstr|function)
패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환

인자

regexp (pattern)
정규식(RegExp) 객체 또는 리터럴. 일치하는 항목은 newSubStr 또는 지정된 함수(function)가 반환 한 값으로 대체됩니다.
substr (pattern)
newSubStr로 대체 될 String. 정규식이 아닌 글자 그대로의 문자열로 처리됩니다. 오직 첫 번째 일치되는 문자열만이 교체됩니다.
newSubStr (replacement)
첫번째 파라미터를 대신할 문자열(String). 여러가지 대체 패턴들이 지원됩니다. 아래의 "매개변수가 string으로 지정되었을 때" 섹션을 참고하세요.
function (replacement)
주어진 regexp 또는 substr에 일치하는 요소를 대체하는 데 사용될 새 하위 문자열을 생성하기 위해 호출되는 함수. 이 함수에 제공되는 인수는 아래 "매개변수가 function으로 지정되었을 때"단원에서 설명합니다.

특수 교체 패턴

패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열
$$ "$" 기호를 삽입합니다.
$& 매치된 문자열을 삽입합니다.
$` 매치된 문자열 앞쪽까지의 문자열을 삽입합니다.
$' 매치된 문자열의 문자열을 삽입합니다.
$n n이 1이상 99이하의 정수라면, 첫번째 매개변수로 넘겨진 RegExp객체에서 소괄호로 묶인 n번째의 부분 표현식으로 매치된 문자열을 삽입합니다.

반환값

어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열

정규표현식 예시

var str = 'Twas the night before Xmas...'; var newstr = str.replace(/xmas/i, 'Christmas'); console.log(newstr); // Twas the night before Christmas...

global 적용 (일치하는 모든 요소에 적용)

글로벌 옵션은 정규표현식으로만 수행 가능
i 옵션은 대소문자를 구분하지 않겠다는 뜻.
var re = /apples/gi; var str = 'Apples are round, and apples are juicy.'; var newstr = str.replace(re, 'oranges'); console.log(newstr); // oranges are round, and oranges are juicy.

단어 치환 (자리바꾸기)

$1 $2 패턴 사용
var re = /(\w+)\s(\w+)/; var str = 'John Smith'; var newstr = str.replace(re, '$2, $1'); console.log(newstr); // Smith, John
 

regex와 replacer함수로 구성

 
replacer 인자 전달 순서

공식문서에 있는 예시

function replacer(match, p1, p2, p3, offset, string) { // p1 is nondigits, p2 digits, and p3 non-alphanumerics return [p1, p2, p3].join(' - '); } var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer); console.log(newString); // abc - 12345 - #$*%

내가 썼던 예시

const text = "asdfasd.fadsf.adf.adsf.adsfa.png.asa.ioiu.....aasd"; text.replace(/(.*)(\..\w+)/, (match, p1, p2, offset, string)=>{console.log(`p1 : ${p1}, p2 : ${p2}, offset : ${offset}, string : ${string}`)}); // p1(첫번째 그룹에 매칭된 문자열) : asdfasd.fadsf.adf.adsf.adsfa.png.asa.ioiu.... // p2(두번째 그룹에 매칭된 문자열) : .aasd // offset : 0 // string(원본 문자열) : asdfasd.fadsf.adf.adsf.adsfa.png.asa.ioiu.....aasd