JavaScriptで指定文字を置換、削除する方法

投稿日: / 更新日:

JavaScriptを使って、文字の一部を取り除いたり、置換する方法を解説します。利用するメソッドはreplace()です。

サンプルコード

置換

あいうえおあいうえおという文字列のという文字をに置換します。

// 置換対象の文字列
var value = "あいえおあいえお" ;

// 置換を実行 ( → あいくえおあいくえお )
var result = value.replace( /う/g , "く" ) ;

このコードを確認する

置換 (変数を利用)

置換前の文字列を変数で指定するには下記の通りです。RegExpオブジェクト(正規表現用のオブジェクト)をコンストラクタで作成する際の第1引数に、目的の変数を指定して下さい。

// 置換対象の文字列
var value = "あいえおあいえお" ;

// 置換前の文字 (変数に代入)
var before = "う" ;

// 変数でRegExpオブジェクトを作成
var regExp = new RegExp( before, "g" ) ;

// 置換を実行 ( → あいくえおあいくえお )
var result = value.replace( regExp , "く" ) ;

// 下記と同じ
// var result = value.replace( /う/g , "く" ) ;

このコードを確認する

削除

置換ではなく削除です。削除する場合は単に置換後の文字を空にして下さい。

// 置換対象の文字列
var value = "あいえおあいえお" ;

// 置換(削除)を実行 ( → あいえおあいえお )
var result = value.replace( /う/g , "" ) ;

このコードを確認する

説明

文字列を指定すると1つだけ?

replace()の第1引数(置換前の値)を文字列で指定した場合、最初の1つしか置換されません。これはハマりやすいので覚えておきましょう。

// 置換対象の文字列
var value = "あいえおあいうえお" ;

// 置換を実行 ( → あいくえおあいうえお )
var result = value.replace( "う" , "く" ) ;

このコードを確認する

RegExpオブジェクト

条件に合う全ての文字列を置換するには、RegExpという正規表現用のオブジェクトを作成します。作成方法は、正規表現リテラルを用いる方法と、コンストラクタを用いる方法の2種類です。下記は2つとも同じ内容です。gというのはglobal match(グローバルマッチ)の頭文字で、「条件に合う全ての対象を置換する」という意味です。これを付けない場合は最初の1つだけが置換されます。

// 正規表現リテラルで作成
var regExp = /う/g ;

// コンストラクタで作成
var regExp = new RegExp( "う", "g" ) ;

変数で指定するには?

コンストラクタの第1引数は変数を用いることが可能です。中身が変動する内容を置換前の値として指定するには、コンストラクタでRegExpオブジェクトを作成して、第1引数に指定しましょう。

// 置換前の値
var before = "う" ;

// 正規表現リテラルで作成 ( → 置換前の値が"before"という文字列で認識される… )
var regExp = /before/g ;

// コンストラクタで作成 (変数を指定可能!!)
var regExp = new RegExp( before, "g" ) ;