JavaScriptで文字列から指定された範囲の部分文字列を抽出するsubstring
メソッドについて書いています。
substring
メソッドを使うと、文字列から特定の部分を取り出すことができます。
文字列から特定の部分を抽出したい場合に便利です。
substringメソッドの基本的な使い方
substring
メソッドは、文字列から指定された範囲の部分文字列を抽出し、新しい文字列を返します。
基本的な構文は以下のとおりです。
string.substring(indexStart, indexEnd)
indexStart
: 部分文字列の開始位置(必須)。- 0以上の整数値を指定します。
- 負の値を指定した場合、0として扱われます。
indexEnd
: 部分文字列の終了位置(省略可能)。indexStart
より大きい整数値を指定します。- 省略した場合、文字列の末尾までが抽出されます。
- 負の値を指定した場合、0として扱われます。
文字列の一部を取り出す
substring
メソッドを使って、文字列の一部を取り出してみます。
const str = 'Hello World!';
console.log(str.substring(0, 5)); // 結果:Hello
console.log(str.substring(6)); // 結果:World!
最初にstr
変数に文字列「Hello World!
」を代入しています。
そして、str
文字列からsubstring
メソッドを使って、部分文字列を取り出しています。
始めは「0
」(開始位置)と「5
」(終了位置)を渡しています。これで0番目から5番目までの部分文字列を取り出します。
2つ目の例では、開始位置の「6
」を渡しています。
そのため6番目から末尾までの部分文字列が取り出されます。
引数の順序
substring
メソッドは、indexStart
がindexEnd
より大きい場合、2つの引数を入れ替えて処理します。
const str = 'Hello World!';
console.log(str.substring(5, 0)); // 結果:Hello
この例では、indexStart
が「5
」、indexEnd
が「0
」ですが、substring
メソッドはこれをsubstring(0, 5)
として処理します。
結果、0番目から5番目までのHello
が取り出されます。
負のインデックス
substring
メソッドに負のインデックスを指定した場合、0として扱われます。
const str = 'Hello World!';
console.log(str.substring(-3)); // 結果:Hello World!
console.log(str.substring(0, -3)); // 結果:
str
変数の文字列にたいして、負のインデックスを指定して、substring
メソッドを呼び出しています。
負のインデックスが0として扱われているため、結果がそれぞれ上記のようになります。
最初は開始位置が「0
」として扱われて、文字列のすべてが返ってきます。
次は開始・終了位置ともに「0
」なので、部分文字列が返ってきていません。
sliceメソッドとsubstringメソッドの違い
slice
メソッドとsubstring
メソッドは、どちらも文字列から指定された範囲の部分文字列を抽出するために使用されますが、両者の間にはいくつかの重要な違いがあります。
1. 負のインデックスの扱い
slice
メソッド: 負のインデックスは、文字列の末尾からの位置として扱われます。substring
メソッド: 負のインデックスは、0として扱われます。
2. 引数の順序
slice
メソッド:indexStart
がindexEnd
より大きい場合、空文字列を返します。substring
メソッド:indexStart
がindexEnd
より大きい場合、2つの引数を入れ替えて処理します。
違いのまとめ
項目 | slice メソッド |
substring メソッド |
---|---|---|
負のインデックス | 末尾からの位置 | 0として扱われる |
引数の順序 | 空文字列を返す | 引数を入れ替えて処理 |
サンプルコード
2つの処理を比較したサンプルコードです。
const str = 'Hello World!';
// slice()メソッドの例
console.log(str.slice(-6)); // 結果:World!
console.log(str.slice(5, 0)); // 結果:""
// substring()メソッドの例
console.log(str.substring(-6)); // 結果:Hello World!
console.log(str.substring(5, 0)); // 結果:Hello
slice
メソッドは負のインデックスを末尾からの位置として扱っています。
そして、引数の順序が逆の場合には空文字列を返します。
一方、substring
メソッドは負のインデックスを0として扱い、引数の順序が逆の場合には引数を入れ替えて処理しています。
JavaScriptのsubstringメソッドの使い方まとめ
今回はJavaScriptのsubstring
メソッドの使い方について解説しました。
この記事の内容をまとめます。
・`indexStart`は部分文字列の開始位置(必須)。
・`indexEnd`は部分文字列の終了位置(省略可能)。
・`indexStart`が`indexEnd`より大きい場合、2つの引数を入れ替えて処理する。
・負のインデックスを指定した場合、0として扱われる。
コメント