const str = "나는 노란색이 가장 좋아~ 노란색은 마음을 따뜻하게 하지.";
const replacedStr = str.replaceAll("노란색", "파란색");

console.log(replacedStr);
// "나는 파란색이 가장 좋아~ 파란색은 마음을 따뜻하게 하지."
str.replaceAll(searchValue, newValue);
const originalString = "안녕하세요, 자바스크립트! 자바스크립트!";
const newString = originalString.replaceAll("자바스크립트", "JavaScript");

// 검색된 부분은 원하는 문자열로 교체되어 반환됩니다.
// 이때, 검색된 문자열에서 일치하는 부분이 여러 개라도 모두 교체합니다.
console.log(newString); // 출력: 안녕하세요, JavaScript! JavaScript!

// 원본 문자열은 변경되지 않습니다.
console.log(originalString); // 출력: "안녕하세요, 자바스크립트! 자바스크립트!"
const text = "apple banana apple";

// g 플래그 사용
const result = text.replaceAll(/apple/g, "orange");
console.log(result);  // "orange banana orange"

// ⚠️ 주의: g 플래그 사용하지 않음
const resulNotg = text.replaceAll(/apple/, "orange");
// Uncaught TypeError: String.prototype.replaceAll called with a non-global RegExp argument
const originalString = "안녕하세요, JavaScript! JavaScript!";
const newString = originalString.replaceAll("JavaScript", "자바스크립트");

console.log(newString); // 출력: "안녕하세요, 자바스크립트! 자바스크립트!"
const originalString = "안녕하세요, JavaScript! JavaScript!";
const newString = originalString.replaceAll("JavaScript", function(match) {
    // match는 replaceAll() 함수가 찾은 부분 문자열 전체
    return match.toUpperCase();
});

console.log(newString); // 출력: "안녕하세요, JAVASCRIPT! JAVASCRIPT!"
function replacer(match, p1, p2, /* …, */ pN, offset, string, groups) {
    return replacement;
}
const phoneNumber = "123-456-7890, 234-567-8910";
const re = /(\d{3})-(\d{3})-(\d{4})/g;
// (\d{3}): 숫자 3개에 해당하는 그룹. 괄호로 둘러싸여 있어서 이 부분은 첫 번째 그룹
// (\d{3}): 두 번째 그룹으로, 다시 3개에 해당하는 그룹
// (\d{4}): 세 번째 그룹으로, 숫자 4개에 해당

const formattedNumber = phoneNumber.replaceAll(re, function(match, areaCode, prefix, lineNumber) {
    // match: 현재 찾아진 전체 부분 문자열 (예: 123-456-7890)
    // areaCode: 첫 번째 그룹에 해당하는 지역 코드 (예: 123)
    // prefix: 두 번째 그룹에 해당하는 접두어 (예: 456)
    // lineNumber: 세 번째 그룹에 해당하는 라인 번호 (예: 7890)
    
    return `+1 (${areaCode}) ${prefix}-${lineNumber}`;
});

console.log(formattedNumber);
// 출력: "+1 (123) 456-7890, +1 (234) 567-8910"
const htmlString = "<p>Hello, <strong>world</strong>!</p>";
const escapedString = htmlString
  .replaceAll(/</g, "&lt;")
  .replaceAll(/>/g, "&gt;");

console.log(escapedString);
// 출력: "&lt;p&gt;Hello, &lt;strong&gt;world&lt;/strong&gt;!&lt;/p&gt;"