.substring()

1つのインデックスと、もう1つ別のインデックス、または文字列の末尾までの文字列部分を返します。

文法

str.substring(indexA[, indexB])
引数 説明
indexA 0~文字列長の整数を指定します。
indexB (任意) 0~文字列長の整数を指定します。

説明

substringindexAからindexBまでの文字を抜き出します。 ただし、indexBの文字は含みません。 In particular:

  • indexAindexBと同じ場合、 substringは空文字列を返します。
  • indexBが省略されると、 substringは文字列の末尾までの文字を抜き出します。
  • どちらかの引数が0より小さい、またはNaNである場合、 それは0であったかのように扱われます。
  • どちらかの引数がstringName.length(文字列長)よりも大きい場合、 それはstringName.lengthであったかのように扱われます。

indexAindexBより大きい場合、 substringは2つの引数を入れ替えたかのようにして処理を行います。 例えば str.substring(1, 0)はstr.substring(0, 1)と等価です。

substringの使用例

下記は、"Mozilla"の文字列からsubstringを使用して、文字を表示している例になります。

// 出力するconsole.log関数が実装されているとします。
var anyString = "Mozilla";

// "Moz"を表示
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));

// "lla"を表示
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));

// "Mozill"を表示
console.log(anyString.substring(0,6));

// "Mozilla"を表示
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

例: 文字列内の文字列を部分的に置換

下記の例は、文字列内の文字を部分的に置換します。 この例の最後の行に書かれている処理を実行すると、 "Brave New World"は"Brave New Web"に変更されます。

function replaceString(oldS, newS, fullS) {
  // 文字列fullS内のoldSをnewSに置換します。
  for (var i = 0; i < fullS.length; i++) {
    if (fullS.substring(i, i + oldS.length) == oldS) {
     fullS = fullS.substring(0, i) + newS +
        fullS.substring(i + oldS.length, fullS.length);
    }
  }
  return fullS;
}

replaceString("World", "Web", "Brave New World");

oldSnewSの部分文字列であるような場合、無限ループになる可能性があるので注意してください。 例えば、上記の例で"World"を"OhterWorld"で置換しようとした場合です。 文字列の置換のメソッドは、下記のようなメソッドが良いでしょう。

function replaceString(oldS, newS,fullS){
  return fullS.split(oldS).join(newS);
}

前述のコードはsubstringの実行例として提供したものです。 もし部分文字列の置換処理が必要なのであれば、 通常はString.prototype.replace()を使用するのが良いでしょう。

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。