--- title: String.prototype.substr() slug: Web/JavaScript/Reference/Global_Objects/String/substr tags: - Deprecated - JavaScript - Method - Prototype - Reference - String - メソッド translation_of: Web/JavaScript/Reference/Global_Objects/String/substr ---
substr()
メソッドは、文字列の一部を、指定した位置から後方向指定した文字数だけ返します。
str.substr(start[, length])
start
length
指定された文字列の指定された部分が入った新しい文字列です。
substr()
は、 str
のうち length
文字分を、 start
の位置から数えて抽出します。
start
が正の数である場合、文字列の先頭から数えた位置になります。この値は str.length
が上限になります。start
が負の数である場合、文字列の末尾から数えた位置になります。この値は -str.length
が下限になります。start
の引数が負の数であっても文字列の末尾からの位置にはなりません。length
が省略された場合、 substr()
は文字列の末尾までの文字を抽出します。length
が {{jsxref("undefined")}} である場合、 substr()
は文字列の末尾までの文字を抽出します。length
が負の数である場合、 0
として扱われます。start
および length
において、 {{jsxref("NaN")}} は 0
として扱われます。Microsoft の JScript は start の位置として負の数に対応していません。この機能を使用したい場合は、このバグを回避するために、次の互換コードを使用することができます。
// only run when the substr() function is broken if ('ab'.substr(-1) != 'b') { /** * Get the substring of a string * @param {integer} start where to start the substring * @param {integer} length how many characters to return * @return {string} */ String.prototype.substr = function(substr) { return function(start, length) { // call the original method return substr.call(this, // did we get a negative start, calculate how much it is from the beginning of the string // adjust the start parameter for negative value start < 0 ? this.length + start : start, length) } }(String.prototype.substr); }
var 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)); // ''
仕様書 |
---|
{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}} |
{{Compat("javascript.builtins.String.substr")}}