『replace()』は、文字列の置換を行う関数です。
基本的な使い方は、下記の通りです。
var text = "abcabc"; var result = text.replace(/a/g, "1"); // "abcabc"内の"a"を最後まで検索して"1"に置換する // 結果:resultは"1bc1bc"になる
『replace()』の第1引数の『/a/g』は、検索する文字列を正規表現で表したものです。
- 正規表現では、検索する文字列を『/(スラッシュ)』で囲みます。
- 末尾の『g』は、最後まで探すというフラグです。
フラグには下表のようなものがあります。フラグ 意味 g 1個目だけでなく最後まで検索します。 i 検索の際に大文字と小文字を区別しません。 m 複数行に渡って検索します。
*また『text.replace("a", "1");』のように通常の文字列で検索すると1個目しか置換されません。var text = "abcabc"; var result = text.replace(/a/, "1"); // resultは"1bcabc"になる(1個目だけ置換) var result = text.replace("a", "1"); // resultは"1bcabc"になる(1個目だけ置換)
正規表現を使う利点は、"文字のパターン"で検索出来ることです。
例えば、『"'abc','de',f"』で'abc'と'de'を1に変えたい場合、『'(シングルコーテーション)で囲まれている文字列』というパターンで検索することで、文字の種類、長さが異なる'abc'と'de'を一度に置換することが出来ます。実際にどうやるかは後述しています。
また、『replace()』の第2引数にコールバック関数を指定すると、見つかった文字ごとに違う処理を行うことが出来ます。
上記の例を含めて『replace()』の様々な使い方をまとめました。