JavaScriptで文字列の一部を切り取り取得する substringメソッド完全ガイド

JavaScriptには、文字列から特定の部分を取得するための便利なメソッドがいくつかあります。今回はその中でも、substringメソッドにスポットを当て、その使用方法と特性について深掘りしていきます。

substringメソッドの概要

substringは、指定した2つのインデックス間の文字列を取得するJavaScriptの標準メソッドです。このメソッドを使えば、文字列の任意の部分を簡単に抽出できます。

substringメソッドの構文

str.substring(indexStart[, indexEnd])
  • indexStart: 部分文字列の抽出を開始する位置を指定。
  • indexEnd (オプショナル): 部分文字列の抽出を終了する位置を指定。この位置自体は含まれません。

重要な特性と挙動

  1. indexStart と indexEnd が同じ場合、結果は空の文字列になります。
  2. indexStart が indexEnd より大きい場合、これらの2つの引数は交換されます。
  3. indexStart や indexEnd が文字列の長さを超えている場合、文字列の長さとして扱われます。
  4. indexStart や indexEnd が負の場合、0として扱われます。

使用例 実際のコード

let str = 'JavaScript';

// indexStart から文字列の最後までを抽出
console.log(str.substring(4)); // 'Script'

// indexStart から indexEnd までを抽出 (indexEndは含まれない)
console.log(str.substring(0, 4)); // 'Java'

// indexStart が indexEnd より大きい場合、2つの引数が交換される
console.log(str.substring(4, 0)); // 'Java'

// 負のインデックスは0として扱われる
console.log(str.substring(-3, 4)); // 'Java'

// インデックスが文字列の長さを超える場合、文字列の長さとして扱われる
console.log(str.substring(4, 20)); // 'Script'

注意 substring vs slice vs substr

  • substringと似ているメソッドにsliceがあります。これらのメソッドは似たような動作をしますが、sliceは負のインデックスも許可して、それを文字列の末尾からのオフセットとして解釈します。
  • また、substrメソッドもありますが、これはECMAScript 2015で非推奨とされ、今後のバージョンで削除される可能性があるので、新しいコードではsubstringまたはsliceを使用することが推奨されています。

まとめ

substringメソッドは、JavaScriptで部分文字列を取得するための非常に便利なメソッドです。シンプルな構文と覚えやすい挙動のため、日常のコーディングにおいて頻繁に利用されます。特に文字列の特定の範囲をクリーンに取得したい場合に、substringメソッドは最適な選択肢の一つと言えるでしょう。