コンテンツにスキップ

JavaScript/String/prototype/replace

出典: フリー教科書『ウィキブックス(Wikibooks)』

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引数に関数を渡すのは、ちょうどPerls///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オブジェクトを参照してください。

関連項目

[編集]
このページ「JavaScript/String/prototype/replace」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。