JavaScript - 文字列を抽出する

String.prototype.substr()

substr() メソッドは、文字列内における文字を、指定した位置から指定した数だけ返します。substr() メソッドの構文は以下のとおりです。

str.substr(start[, length])
substr() メソッド
start
文字を取り出す位置です。負の数が与えられた場合、strLength + start のように扱われます。strLength は文字列の長さを表します。
length
取り出す文字の数です。このパラメータは、オプションであるため省略可能です。

substr の返り値は、与えられた文字列の抽出されたセクションを含む新しい文字列です。length0 や負の数の場合、空文字列が返される。

var str = 'Mozilla';

console.log(str.substr(0, 1));   // 'M'
console.log(str.substr(1, 0));   // ''
console.log(str.substr(-1, 1));  // 'a'
console.log(str.substr(1, -1));  // ''
console.log(str.substr(-3));     // 'lla'
console.log(str.substr(1));      // 'ozilla'
console.log(str.substr(-20, 2)); // 'Mo'
console.log(str.substr(20, 2));  // ''
substr() メソッド
注意アイコン
substr() メソッドについて
厳密には推奨されていませんが、従来の関数と見なされているので可能な限り避けるべきです。これはコア JavaScript 言語の一部ではなく、将来削除される可能性があります。可能であれば、代わりに substring() メソッドを使ってください。
サポートブラウザ
ie
IE
edge
Edge
firefox
Firefox
chrome
Chrome
safari
Safari
opera
Opera
safari
iOS Safari
android
Android
412111
◯:Support ✕:Not Support ?:未定義 n:以降の Version で Support

String.prototype.substring()

substring() メソッドは string オブジェクトの開始・終了インデックスの間、または文字列の最後までの部分集合を返します。substring の構文は以下のとおりです。

str.substring(indexStart[, indexEnd])
substring() メソッド
indexStart
文字を取り出す開始位置です。ただし indexStartindexEnd より大きい場合、substring() は 2 つの引数が交換されたものとして実行されます。
indexEnd
文字を取り出す終了位置です。このパラメータは、オプションであるため省略可能です。

substring の返り値は、与えられた文字列から抽出された区間を含む新しい文字列です。

var anyString = 'Mozilla';

// 'M' と表示
console.log(anyString.substring(0, 1));
console.log(anyString.substring(1, 0));

// 'Mozill' と表示
console.log(anyString.substring(0, 6));

// 'lla' と表示
console.log(anyString.substring(4));
console.log(anyString.substring(4, 7));
console.log(anyString.substring(7, 4));

// 'Mozilla' と表示
console.log(anyString.substring(0, 7));
console.log(anyString.substring(0, 10));
substring() メソッド
サポートブラウザ
ie
IE
edge
Edge
firefox
Firefox
chrome
Chrome
safari
Safari
opera
Opera
safari
iOS Safari
android
Android
312111
◯:Support ✕:Not Support ?:未定義 n:以降の Version で Support

Array.prototype.slice()

slice() メソッドは begin から end まで選択された配列の一部をシャローコピーして、新しい配列オブジェクトを返します (end は含まれません)。元の配列は変更されません。slice() メソッドの構文は以下のとおりです。

str.slice(beginIndex[, endIndex])
slice() メソッド
beginIndex
取り出しを開始する位置を示す 0 から始まるインデックスです。負の値の場合、strLength が文字列の長さとすると strLength + beginIndex として扱われます。beginIndex が文字列の長さ以上である場合、slice() は空の文字列を返します。
endIndex
その前で取り出しを終える位置を示す 0 から始まるインデックスです。endIndex を省略した場合、slice() は文字列の末尾までを取り出します。負の値の場合、strLength が文字列の長さとすると strLength + endIndex として扱われます。

slice の返り値は、文字列の取り出された一部分を含んだ新しい文字列です。

var str = 'The morning is upon us.'

console.log(str.slice(1, 8));   // he morn
console.log(str.slice(4, -2));  // morning is upon u
console.log(str.slice(12));     // is upon us.
console.log(str.slice(30));     // ""
console.log(str.slice(-3));     // us.
console.log(str.slice(-3, -1)); // us
console.log(str.slice(0, -1));  // The morning is upon us
slice() メソッド
サポートブラウザ
ie
IE
edge
Edge
firefox
Firefox
chrome
Chrome
safari
Safari
opera
Opera
safari
iOS Safari
android
Android
41211
◯:Support ✕:Not Support ?:未定義 n:以降の Version で Support

関連記事