JavaScriptのStringオブジェクトのreplace()メソッドについて記載します。
概要、実際のサンプルコードを交えて構文などの使い方をまとめてみました。
JavaScriptのStringオブジェクトとは?
JavaScript(JS) のStringオブジェクト(文字列)は、他の言語と比べて、動的なデータ型として定義されています。
そして、 他のプログラミング言語 (C 言語など) とは異なり、文字列のメソッドが豊富に用意されています。
また、文字列と数値を効率的に相互変換する方法も提供されています。
事前に定義されたメソッドを利用して文字列操作が容易に出来る点も他言語と比べても有利な点ですが、他の言語と比べて一部の文字列処理が遅くなることがあるとも言われています。
それでは、次に本題の説明に移ります。
JavaScriptのStringオブジェクトのreplace()概要
Stringオブジェクトのreplace()は、文字列内の文字列を置換するためのメソッドです。
構文、使い方
構文:string.replace(regexp|substr, newSubstr|function)
使い方:文字列string内のregexpまたはsubstrをnewSubstrまたはfunctionの結果で置換します。
引数について
replace()は、文字列を置換するための関数です。
引数として、置換する文字列(または正規表現)と置換後の文字列を指定します。
返り値について
replace()は、文字列中の指定した文字列を置換した新しい文字列を返します。
このメソッドを利用した便利なテクニック
Stringオブジェクトのreplace()を使うと、文字列内の文字列を置換することができます。
例えば、文字列内のすべてのスペースをアンダースコアに置換することができます。
例:
1 2 3 |
let str = ""This is a string""; str = str.replace(/ /g, ""_""); console.log(str); // ""This_is_a_string"" |
現場で実際にどのように使われているか
Stringオブジェクトのreplace()は、文字列内の文字列を置換するために使用されます。
例えば、文字列 “”Hello World”” の中の “”World”” を “”JavaScript”” に置換するには、以下のようにします。
1 |
""Hello World"".replace(""World"", ""JavaScript""); |
JavaScriptのStringオブジェクトのreplace()と一緒によく使われる処理
正規表現を使った置換処理がよく使われます。
正規表現を使うことで、文字列内の複数の文字列を一度に置換することができるためです。
使用する上での注意点
– 置換文字列を正規表現で指定する場合、置換文字列を文字列として解釈される可能性があるため、エスケープ処理が必要です。
– 置換文字列を文字列として指定した場合、大文字と小文字を区別して置換されます。
JavaScriptのStringオブジェクトのreplace()と似た処理のJSメソッド、違い
split()メソッドと似ていますが、下記違いがあります。
- split()メソッドは文字列を指定した文字列で分割し、配列を返します。
- replace()メソッドは、文字列内の文字列を置換し、新しい文字列を返します。
JavaScriptのStringオブジェクトのreplace()を使ったサンプルコードの紹介
Stringオブジェクトのreplace()の使用例
1 2 3 4 |
let str = ""JavaScript is an awesome language""; let newStr = str.replace(""awesome"", ""great""); console.log(newStr); |
正規表現を使用したreplace()の使用例
1 2 3 4 |
let str = ""JavaScript is an awesome language""; let newStr = str.replace(/awesome/g, ""great""); console.log(newStr); |
JavaScript stringオブジェクトの他メソッドについて
JavaScriptのstringオブジェクトの他メソッドについては、下記記事にもまとめていますので参考にしてみてください
また、JavaScriptの公式ドキュメントであるMDNで記載されているstringオブジェクトのreplaceメソッドについても補足としてリンクを貼っておきます。参考にしてみてください。