1. ホーム
  2. javascript

[解決済み] `string.replace` で変数が変更されない

2022-03-05 10:10:39

質問

var variableABC = "A B C"; 
variableABC.replace("B", "D") // Wanted output: "A D C".

しかし variableABC は変わらなかった。

console.log(variableABC); // "A B C"

にしたい。 "A D C" .

解決方法は?

Javascriptの規格による。 String.replace は文字列そのものを変更することは想定していません。ただ、変更された文字列を返すだけです。この場合 Mozilla Developer Network のドキュメント をご覧ください。

いつでも文字列を変更した値に設定するだけでよいのです。

variableABC = variableABC.replace('B', 'D')

編集:上記のコードは、最初の出現箇所のみを置換するものです。

すべての出現箇所を置き換えるには、次のようにします。

 variableABC = variableABC.replace(/B/g, "D");  

ケーシングを無視し、すべての出現箇所を置換する場合

 variableABC = variableABC.replace(/B/gi, "D");