Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
- トップページ
- JavaScript辞典
- 文字列.replace() / replaceAll()
文字列.replace() / replaceAll()
文字列内の指定した文字列やパターンを別の文字列に置換します。元の文字列は変更されず、新しい文字列が返されます。
構文
// 最初に一致した部分だけを置換します。
文字列.replace("検索文字列", "置換文字列")
文字列.replace(/正規表現/, "置換文字列")
// 一致したすべての部分を置換します。
文字列.replaceAll("検索文字列", "置換文字列")
メソッド一覧
| メソッド | 概要 |
|---|---|
| replace("検索文字列", "置換文字列") | 最初に一致した部分だけを置換した新しい文字列を返します。 |
| replace(/正規表現/, "置換文字列") | 正規表現に一致した部分を置換します。gフラグを付けると全箇所を置換できます。 |
| replaceAll("検索文字列", "置換文字列") | 一致したすべての部分を置換した新しい文字列を返します。 |
サンプルコード
var str = "I like cats. cats are cute.";
// replace は最初の1つだけを置換します。
console.log(str.replace("cats", "dogs")); // 『I like dogs. cats are cute.』と出力されます。
// replaceAll はすべてを置換します。
console.log(str.replaceAll("cats", "dogs")); // 『I like dogs. dogs are cute.』と出力されます。
// 正規表現でgフラグを付けても全箇所を置換できます。
console.log(str.replace(/cats/g, "dogs")); // 『I like dogs. dogs are cute.』と出力されます。
// 正規表現で大文字・小文字を無視して置換します。
var mixed = "Hello hello HELLO";
console.log(mixed.replace(/hello/gi, "Hi")); // 『Hi Hi Hi』と出力されます。
// 元の文字列は変更されません。
console.log(str); // 『I like cats. cats are cute.』のまま出力されます。
実行結果
上記のコードを実行すると、コンソールには以下が出力されます。
"I like dogs. cats are cute." // replace は最初の1つだけ置換 "I like dogs. dogs are cute." // replaceAll はすべて置換 "I like dogs. dogs are cute." // 正規表現 + gフラグも全箇所置換 "Hi Hi Hi" // 正規表現 + gi フラグで大文字小文字を無視 "I like cats. cats are cute." // 元の文字列は変わらない
概要
『文字列.replace()』は最初に一致した部分だけを置換するメソッドです。文字列を渡した場合、最初の1箇所しか置換されない点に注意してください。すべての一致箇所を置換したい場合は『文字列.replaceAll()』を使うか、正規表現にgフラグを付けて『文字列.replace()』に渡します。
『文字列.replaceAll()』はES2021で追加された比較的新しいメソッドで、すべての一致箇所を一度に置換できます。正規表現のgフラグを使う方法と結果は同じですが、正規表現に慣れていない場合は『文字列.replaceAll()』の方が読みやすいでしょう。
いずれのメソッドも元の文字列は変更せず、置換後の新しい文字列を返します。結果を使うためには、変数に代入するか直接利用する必要があります。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。