--- 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])
startlength指定された文字列の指定された部分が入った新しい文字列です。
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")}}