JavaScript/String/prototype/indexOf
String.prototype.indexOf()
メソッドは、文字列内で指定された部分文字列が最初に現れる位置のインデックスを返します。見つからない場合は -1 を返します[1]。
構文
編集str.indexOf(searchString[, position])
searchString
: 検索する部分文字列。position
(省略可能): 検索を開始する位置を表す数値。デフォルト値は 0 です。
例
編集文字列内の部分文字列を検索するプログラム
編集以下のプログラムは、String.prototype.indexOf()
を使用して文字列内の部分文字列を検索します。
const str = 'Hello World'; console.log(str.indexOf('World')); // 6 console.log(str.indexOf('world')); // -1(大文字・小文字は区別されます) console.log(str.indexOf('o')); // 4(最初に現れる 'o' の位置)
このプログラムでは、String.prototype.indexOf()
を使用して文字列 str
内の部分文字列を検索しています。'World'
は位置 6 で見つかり、'world'
(小文字)は見つからないため -1 が返され、'o'
は位置 4 で最初に見つかります。
開始位置を指定して検索するプログラム
編集以下のプログラムは、String.prototype.indexOf()
を使用して指定された位置から検索を開始します。
const str = 'Hello World'; console.log(str.indexOf('o')); // 4 console.log(str.indexOf('o', 5)); // 7(位置 5 から検索を開始)
このプログラムでは、String.prototype.indexOf()
を使用して文字列 str
内の文字 'o'
を検索しています。最初は位置 4 で見つかりますが、位置 5 から検索を開始すると位置 7 で見つかります。
すべての出現位置を検索するプログラム
編集以下のプログラムは、String.prototype.indexOf()
を使用して文字列内のすべての部分文字列の出現位置を検索します。
const str = 'Hello World, Hello JavaScript'; const searchStr = 'Hello'; const positions = []; let pos = str.indexOf(searchStr); while (pos !== -1) { positions.push(pos); pos = str.indexOf(searchStr, pos + 1); } console.log(positions); // [0, 13]
このプログラムでは、String.prototype.indexOf()
を繰り返し使用して文字列 str
内のすべての 'Hello'
の出現位置を検索しています。結果として、位置 0 と 13 で見つかります。
注意点
編集- 大文字・小文字の区別:
indexOf()
メソッドは大文字と小文字を区別します。 - -1 の戻り値: 検索文字列が見つからない場合は -1 を返します。
- 空文字列: 検索文字列が空文字列の場合、特殊な動作をします。位置パラメータが文字列の長さを超えている場合は -1 を返し、それ以外の場合は位置パラメータか 0(位置パラメータが負の場合)を返します。
- Unicode: このメソッドは UTF-16 コードユニットの値に基づいて動作します。
脚註
編集- ^ このメソッドは、文字列内の部分文字列を検索するために使用されます。
外部リンク
編集