const str = "나는 노란색이 가장 좋아~";
const replacedStr = str.replace("노란색", "파란색");

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

// 검색된 부분은 원하는 문자열로 교체되어 반환됩니다.
// 이때, 검색된 문자열에서 첫 번째로 일치하는 부분만을 교체합니다.
console.log(newString); // 출력: 안녕하세요, JavaScript! 자바스크립트!

// 원본 문자열은 변경되지 않습니다.
console.log(originalString); // 출력: "안녕하세요, 자바스크립트! 자바스크립트!"
const originalString = "제 나이는 20살입니다.";
const newString = originalString.replace(/\d+/, "**");
// \d+는 하나 이상의 숫자를 나타내는 정규 표현식

// 검색된 부분은 원하는 문자열로 교체되어 반환됩니다.
console.log(newString); // 출력: 제 나이는 **살입니다.

// 원본 문자열은 변경되지 않습니다.
console.log(originalString); // 출력: "제 나이는 20살입니다."
const text = "apple banana apple";

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

// g 플래그 사용하지 않음
const resulNotg = text.replace(/apple/, "orange");
console.log(resulNotg);  // "orange banana apple"
const originalString = "안녕하세요, JavaScript!";
const newString = originalString.replace("JavaScript", "자바스크립트");

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

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

const formattedNumber = phoneNumber.replace(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"
const email = "john.doe@example.com";
const hiddenEmail = email.replace(/(?<=.{3})[^@](?=[^@]*@)/g, "*");

console.log(hiddenEmail);
// 출력: "joh*************@example.com"
const htmlString = "<p>Hello, <strong>world</strong>!</p>";
const plainText = htmlString.replace(/<[^>]*>/g, "");

console.log(plainText);
// 출력: "Hello, world!"
const sentence = "JavaScript is fun!";
const replacedSentence = sentence.replace("JavaScript", "TypeScript");

console.log(replacedSentence);
// 출력: "TypeScript is fun!"

caniuse.com에서 더 자세한 정보를 확인해 보세요.