Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 標準組み込みオブジェクト
  5. String
  6. substr()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

String.prototype.substr()

非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

substr()String 値のメソッドで、この文字列の一部を、指定した位置から後方向に指定した文字数だけ返します。

メモ:substr() は ECMAScript 仕様書にはありません。付録 B: ウェブブラウザーのための追加 ECMAScript 機能 で定義されており、ブラウザー以外のランタイムでは通常オプションです。従って、コードのクロスプラットフォームの親和性を最大にするには、代わりに標準のString.prototype.substring() またはString.prototype.slice() メソッドを使用するよう勧められています。これら 3 つのメソッドの比較がString.prototype.substring() page にあります。

試してみましょう

const str = "Mozilla";console.log(str.substr(1, 2));// 予想される結果: "oz"console.log(str.substr(2));// 予想される結果: "zilla"

構文

js
substr(start)substr(start, length)

引数

start

返却する部分文字列に含まれる最初の文字の位置です。

length省略可

取り出す文字の数です。

返値

指定された文字列の指定された部分が入った新しい文字列です。

解説

文字列のsubstr() メソッドは、その文字列のstart のインデックスからlength 文字分を数えて抽出します。

  • start >= str.length である場合、空文字列が返されます。
  • start < 0 である場合、文字列の末尾から数えたインデックスになります。厳密には、この場合はmax(start + str.length, 0) で始まる部分文字列になります。
  • start が省略されたかundefined であった場合、0 として扱われます。
  • length が省略されたかundefined であった場合、またはstart + length >= str.length であった場合、substr() は文字列の末尾まで文字を抽出します。
  • length < 0 の場合、空文字列が返されます。
  • startlength のどちらでも、NaN0 として扱われます。

substr() の使用を避けることが推奨されますが、レガシーコードにおいてsubstr()slice() またはsubstring() に移行する簡単な方法はありません。例えば、str = "01234", a = 1, l = -2 の場合、str.substr(a, l),str.slice(a, a + l),str.substring(a, a + l) はすべて異なる結果を返します。substr() は空文字列を返し、slice()"123" を返し、substring()"0" を返します。実際のリファクタリング方法は、al の範囲に関する知識に依存します。

substr() の使用

js
const aString = "Mozilla";console.log(aString.substr(0, 1)); // 'M'console.log(aString.substr(1, 0)); // ''console.log(aString.substr(-1, 1)); // 'a'console.log(aString.substr(1, -1)); // ''console.log(aString.substr(-3)); // 'lla'console.log(aString.substr(1)); // 'ozilla'console.log(aString.substr(-20, 2)); // 'Mo'console.log(aString.substr(20, 2)); // ''

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.substr

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp