JavaScript/String/prototype/replace
replaceメソッドは文字列を指定されたパターンにしたがって置換し、新しい文字列を返します。
構文
編集let replacedString = string.replace(oldString||regexp, newString||callback, flags);
文字列stringに含まれる部分文字列oldString(または正規表現regexpにマッチした部分)を、文字列newString(または関数callbackの戻り値)で置き換えます。第3引数flagsはSpiderMonkeyの独自拡張で他の多くの処理系には実装されていません。
例
編集let replacedString = "Hello, world!".replace("world", "JavaScript");
alert(replacedString); // "Hello, JavaScript!"
解説
編集replaceメソッドはもとの文字列を変更せずに置換した文字列を返します。必ず返された文字列replacedStringを受け取ってください。string = string.replace(oldString, newString)
のようにreplaceメソッドの戻り値をもとの文字列stringに代入すると、string自身を変更することができます。
どの部分を置き換えるかは文字列または正規表現のパターンによって指定し、何に置き換えるかは文字列または関数の戻り値によって決定されます。第2引数に関数を渡すのは、ちょうどPerlのs///ee
と等価ですが、Safariの一部のバージョンではサポートされていません。
第3引数には正規表現のフラグを渡すことができますが、Mozilla以外のほとんどの処理系ではサポートされていません。第1引数に
- 正規表現を渡す場合は、
string.replace(/regexp/, newString, "gi")
の代わりに、string.replace(/regexp/gi, newString)
- 文字列を渡す場合は、
string.replace(oldString, newString, "gi")
の代わりに、string.replace( new RegExp(oldString, "gi"), newString )
を使用することができます。詳しくはRegExpオブジェクトを参照してください。