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+は1つ以上の数字を表す正規表現です。

// 検索された部分は、指定した文字列に置き換えられて返されます。
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}): 2番目のグループで、再び3桁に対応するグループ
// (\d{4}): 3番目のグループで、数字4桁に対応

const formattedNumber = phoneNumber.replace(re, function(match, areaCode, prefix, lineNumber) {
    // match: 現在検索された部分文字列全体(例:123-456-7890)
    // areaCode: 最初のグループに対応する地域コード(例:123)
    // prefix: 2番目のグループに対応する接頭番号(例:456)
    // lineNumber: 3番目のグループに対応するライン番号(例: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!"