column

ITコラム

Start here Hand Concept

プログラミングノウハウ

2017.11.10

JavaScript【 substring 】 ~ 文字列の切り出し

String オブジェクトのsubstringメソッドやsliceメソッド、substrメソッドを使用して、文字列の中のある部分を切り出すことができます。
今回は、文字列の切り出しについて紹介します。

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。

1. substring メソッド

 
String オブジェクトのsubstring メソッドは、String オブジェクトのある部分を 新しい文字列として返すメソッドです。

substring メソッドは、次のように使用します。

文字列.substring( 開始位置, 終了位置 );

開始位置は、切り出す部分の最初の文字のインデックスを指定します。

終了位置は、切り出す部分の最後の文字のインデックスに 1 を足した数字を指定します。
開始位置と違って、最後の文字のインデックスそのものではないので、注意が必要です。

終了位置は省略可能で、省略した場合は、開始位置から最後までの部分が切り出されます。

substring メソッドを使用して、文字列を切り出してみます。

let str = "abcあいdeうえおfかきく";
  
let str2 = str.substring(3, 6);
let str3 = str.substring(5);
let str4 = str.substring(7, 7);
let str5 = str.substring(-3, -1);
let str6 = str.substring(10, 20);
let str7 = str.substring(14, 8);


切り出した文字列を出力すると、次のように表示されます。

str : abcあいdeうえおfかきく

str.substring(3, 6)
str.substring(5)
str.substring(7, 7)
str.substring(-3, -1)
str.substring(10, 20)
str.substring(14, 8)

 
終了位置 が省略された場合は、substring メソッドは 開始位置から文字列の最後までの部分を切り出します。

開始位置 が 終了位置 と等しい場合、 substring メソッドは 空文字を返します。

開始位置 または 終了位置 が 0 未満 あるいは NaN だった場合、0 として扱われます。

開始位置 または 終了位置 が 文字列の長さ( 文字列.length )より大きかった場合、文字列の長さ として扱われます。

開始位置 が 終了位置 より大きかった場合、substring メソッドは 開始位置 と 終了位置 が交換されたものとして処理します。

▲目次へ戻る

2. slice メソッド

 
String オブジェクトのslice メソッドは、文字列の一部分を切り出して、新しい文字列として返すメソッドです。

slice メソッドは、次のように使用します。

文字列.slice( 開始位置, 終了位置 );

記述方法、引数の指定方法、共に substring メソッドと全く同じですが、引数に負の値を指定した場合と、開始位置 が 終了位置 より大きかった場合に処理結果が違います。

先ほどの substring メソッドと同じ引数を指定して、slice メソッドで文字列を切り出してみます。

let str = "abcあいdeうえおfかきく";
  
let str2 = str.slice(3, 6);
let str3 = str.slice(5);
let str4 = str.slice(7, 7);
let str5 = str.slice(-3, -1);
let str6 = str.slice(10, 20);
let str7 = str.slice(14, 8);

切り出した文字列を出力すると、次のように表示されます。

str : abcあいdeうえおfかきく

str.slice(3, 6)
str.slice(5)
str.slice(7, 7)
str.slice(-3, -1)
str.slice(10, 20)
str.slice(14, 8)

 
開始位置 または 終了位置 に 負の値を指定した場合、substring メソッドは 0 として扱われますが、slice メソッドは 末尾から数えて処理します。
開始位置が「 str.length – 3 」、終了位置が「 str.length – 1 」と考えると分かりやすいです。
「 str.slice(-3, -1) 」は、str.length が 14 ですので、「 str.slice(11, 13) 」と同じ結果となります。

開始位置 が 終了位置 より大きかった場合、substring メソッドは 開始位置 と 終了位置 が交換されたものとして処理しますが、slice メソッドは 空文字を返します。

▲目次へ戻る

3. substr メソッド

 
String オブジェクトのsubstr メソッドは、文字列内の文字を、指定した位置から指定した数だけ切り出して、新しい文字列として返すメソッドです。

substr メソッドは、次のように使用します。

文字列 .substr( 開始位置 , 文字数 );

開始位置は、切り出す部分の最初の文字のインデックスを指定します。
開始位置に 負の値を指定した場合は、「 文字列の長さ( 文字列.length ) + 開始位置 」として扱われます。
開始位置に 文字列の長さより大きい値を指定した場合は、空文字が返されます。

文字数の指定は省略可能で、省略した場合は、開始位置から最後までの部分が切り出されます。
文字数に 切り出し可能な文字数より大きい値を指定した場合にも、開始位置から最後までの部分が切り出されます。
文字数に 0 や 負の値 を指定した場合は、空文字が返されます。

substr メソッドを使用して、文字列を切り出してみます。

let str = "abcあいdeうえおfかきく";
  
let str2 = str.substr(3, 6);
let str3 = str.substr(5);
let str4 = str.substr(7, 0);
let str5 = str.substr(-3, 1);
let str6 = str.substr(10, 20);
let str7 = str.substr(14, 8);

切り出した文字列を出力すると、次のように表示されます。

str : abcあいdeうえおfかきく

str.substr(3, 6)
str.substr(5)
str.substr(7, 0)
str.substr(-3, 1)
str.substr(10, 20)
str.substr(14, 8)

▲目次へ戻る

無料説明会

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ