String.prototype.substr()

概要

文字列内における文字を、指定した位置から指定した数だけ返します。

構文

str.substr(start[, length])

引数

start
文字を取り出す位置( 0 から文字列の長さ以下までの整数)
length
取り出す文字の数

詳細

start は文字のインデックスです。一番最初の文字のインデックスは、 0 で、最後の文字のインデックスは、文字列の長さから 1 を引いた数です。substr は、start から文字の取り出しを開始し、length 個の文字を集めます(start から文字列の最後までの長さが指定した length より短かった場合は、length より少ない数の文字を返すでしょう)。

start が正の数かつ文字列の長さ以上である場合、substr は空の文字列を返します。

start が負の数である場合、substr はそれを文字列の最後から数えた文字のインデックスとして使用します。start が負の数かつ start の絶対値が文字列の長さより大きい場合、substr は開始インデックスとして 0 を使用します。注: start の引数に負の数の値を指定することは、Microsoft JScript ではサポートされません
【訳注: JScript では start に負の数を指定した場合、正の数として扱われます】

length が 0 あるいは負の数の場合、substr は空の文字列を返します。length が省略された場合、start から文字列の最後までの文字を取り出します。

substr() メソッドの使用

var str = "abcdefghij";

console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): bc'
console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): hi'
console.log('(-3): '     + str.substr(-3));     // '(-3): hij'
console.log('(1): '      + str.substr(1));      // '(1): bcdefghij'
console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '

仕様

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Defined in the (informative) Compatibility Annex B. Implemented in JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Defined in the (informative) Compatibility Annex B
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (有) (有) (有) (有) (有)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: mamodayo, teoli, ethertank, Julien.stuby, Mgjbot, Potappo
 最終更新者: mamodayo,