Algorithm/Baekjoon(Node.js)

[JavaSrcipt] replace

비망노트 2021. 9. 17. 23:51

✅ replace

어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환합니다.

그 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며,

교체 문자열은 문자열이나 모든 매치에 대해서 호출된 함수일 수 있습니다.

pattern이 문자열 인 경우, 첫 번째 문자열만 치환이 되며 원래 문자열은 변경되지 않습니다.

 

const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"

구문

var newStr = str.replace(regexp|substr, newSubstr|function)

매개변수

regexp (pattern)
정규식(RegExp) 객체 또는 리터럴.

일치하는 항목은 newSubStr 또는 지정된 함수(function)가 반환 한 값으로 대체됩니다.

substr (pattern)
newSubStr로 대체 될 String.

정규식이 아닌 글자 그대로의 문자열로 처리됩니다.

오직 첫 번째 일치되는 문자열만이 교체됩니다.

 

newSubStr (replacement)
첫번째 파라미터를 대신할 문자열(String).

여러가지 대체 패턴들이 지원됩니다.
function (replacement)
주어진 regexp 또는 substr에 일치하는 요소를 대체하는 데

사용될 새 하위 문자열을 생성하기 위해 호출되는 함수.

 

 global과 ignore를 사용한 replace()

Global replace는 정규식으로만 수행 할 수 있습니다.

다음 예제에서 정규 표현식은 replace()가 'apples'를 'oranges'로 바꿀 수 있도록

global 및 ignore case 플래그를 포함합니다.

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.

첫번째 일치되는 문자열만 교체되지만

정규식 /문자열/g 를 즉 global을 사용하면 모든 문자열을 변경할 수 있고,

이때 /문자열/i  즉 ignore는 대소문자를 무시하고 찾을 수 있다.

 

즉 위 예제에서는 

var re = /apples/i; 만 했다면 대소문자를 무시하므로 문장 첫단어에있는

Apples를 바꾸겠지만 /g를 하지않았으므로 두번째에있는 apples는 그대로있게된다.

 

 

 

 

 

 

-출처

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace