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

Start here hand concept isolated over white background

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

目次

 
1.substring メソッド
2.slice メソッド
3.substr メソッド

1.substring メソッド

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

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

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

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

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

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

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

var str = "abcあいdeうえおfかきく";
  
var str2 = str.substring(3, 6);
var str3 = str.substring(5);
var str4 = str.substring(7, 7);
var str5 = str.substring(-3, -1);
var str6 = str.substring(10, 20);
var 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 メソッドで文字列を切り出してみます。

var str = "abcあいdeうえおfかきく";
  
var str2 = str.slice(3, 6);
var str3 = str.slice(5);
var str4 = str.slice(7, 7);
var str5 = str.slice(-3, -1);
var str6 = str.slice(10, 20);
var 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 メソッドを使用して、文字列を切り出してみます。

var str = "abcあいdeうえおfかきく";
  
var str2 = str.substr(3, 6);
var str3 = str.substr(5);
var str4 = str.substr(7, 0);
var str5 = str.substr(-3, 1);
var str6 = str.substr(10, 20);
var 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)

▲目次へ戻る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です