文字列.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.』のまま出力されます。
概要
『文字列.replace()』は最初に一致した部分だけを置換するメソッドです。文字列を渡した場合、最初の1箇所しか置換されない点に注意してください。すべての一致箇所を置換したい場合は『文字列.replaceAll()』を使うか、正規表現にgフラグを付けて『文字列.replace()』に渡します。
『文字列.replaceAll()』はES2021で追加された比較的新しいメソッドで、すべての一致箇所を一度に置換できます。正規表現のgフラグを使う方法と結果は同じですが、正規表現に慣れていない場合は『文字列.replaceAll()』の方が読みやすいでしょう。
いずれのメソッドも元の文字列は変更せず、置換後の新しい文字列を返します。結果を使うためには、変数に代入するか直接利用する必要があります。
対応ブラウザ
デスクトップ
全バージョンで対応しています
全バージョンで対応しています
全バージョンで対応しています
5 ×
4.5 △
4 △↑ 部分的に対応
3.5 以前 ×
3 以前 ×モバイル
全バージョンで対応しています
Android Browser
37 以降 ○
4 以前 ×
Chrome Android
36 以降 ○
17 以前 ×
Firefox Android
79 以降 ○
3 以前 ×記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。