【JavaScript】substring – 文字列の一部分を取得するためのメソッド

JavaScriptのsubstring()メソッドは、文字列の一部分を取得するための便利なメソッドです。文字列の操作をする際に頻繁に使われるため、基本的な使い方や注意点をまとめていきたいと思います。

substring() メソッドとは?

substring()は、指定した開始位置と終了位置の間にある文字列を抽出します。

基本的な構文

JavaScript
文字列.substring(開始位置, 終了位置);
  • 開始位置:抽出を開始するインデックス(0から始まる)
  • 終了位置(省略可能):抽出を終了するインデックス(この位置の文字は含まれない)

基本的な使い方

JavaScript
const text = 'Chocolate';
console.log(text.substring(0, 4)); // "Choc"

終了位置を省略

JavaScript
const text = 'Chocolate';
console.log(text.substring(4)); // "olate"

substring() の動作の特徴

開始位置と終了位置 の大小を逆にしても動作する

JavaScript
const text = 'Chocolate';
console.log(text.substring(4, 0)); // "Choc"(開始位置と終了位置が入れ替わる)

substring()では、開始位置が終了位置より大きい場合、自動的に値が入れ替わります。

負の値を指定すると0として扱われる

HTML
const text = 'Chocolate';
console.log(text.substring(-3, 4)); // "Choc"(-3 は 0 として扱われる)

サンプルコード

文字列の一部を取得して再構築

HTML
const text = 'Hello, Coffee!';
const newText = text.substring(0, 5) + ' Donut!';
console.log(newText); // "Hello Donut!"

拡張子を取り除く

JavaScript
const filename = 'document.pdf';
const nameWithoutExt = filename.substring(0, filename.lastIndexOf('.'));
console.log(nameWithoutExt); // "document"

使用時の注意点

負の値を使う場合の挙動

負のインデックスは 0 として扱われるため、負の値を使用した場合、意図しない結果になることがあります。

JavaScript
console.log("Chocolate".substring(-2, 3)); // "Cho"

大きな値を指定すると文字列の末尾まで取得

JavaScript
console.log('Chocolate'.substring(2, 100)); // "ocolate"

100Chocolate の長さを超えているため、末尾まで取得されます。

さいごに

  • substring()は文字列の一部分を取得するためのメソッドです。
  • 負の値を指定すると0として扱われます。
  • 開始位置と終了位置が逆でも動作します。
  • 大きすぎる値を指定すると文字列の末尾まで取得されます。