logo

JavaScriptのindexofと検索の違い

導入:

JavaScript は広く使用されているプログラミング言語であり、文字列を操作するための組み込みメソッドがいくつか提供されています。文字列内で特定の文字または部分文字列を検索するために最も一般的に使用される 2 つの方法は次のとおりです。 の指標() そして 検索() 。これら 2 つの方法は機能的には似ているように見えますが、いくつかの重要な違いがあります。この記事では、JavaScript のindexOf() と search() の違いについて説明します。

IndexOf() メソッド:

の指標() メソッドは、指定された文字列内で最初に出現する部分文字列のインデックスを検索するために使用される組み込み JavaScript 関数です。このメソッドは、文字列の先頭から開始して、指定された部分文字列が最初に出現するインデックスを返します。部分文字列が見つからない場合、メソッドは戻ります。 -1

構文:

を使用するための構文 の指標() 方法は次のとおりです。

 string.indexOf(searchValue[, fromIndex]) 

ここ、 は検索する文字列です。 検索値 は検索する値であり、 fromインデックス は、検索を開始する文字列内の位置を指定するオプションのパラメータです。もし fromインデックス 提供されていない場合、 の指標() このメソッドは文字列の先頭から検索を開始します。もし fromインデックス です ネガティブ 値を指定すると、文字列の末尾から検索が開始されます。

例:

URI と URL

理解するために例を挙げてみましょう の指標() 方法:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

出力:

 16 

説明:

ここで、 IndexOf() メソッド 最初に出現する単語を検索します 「強力な」 文字列の中で 「JavaScript は強力なプログラミング言語です」 。その言葉以来 「強力な」 インデックスに表示されます 16 、メソッドは戻ります 16

search() メソッド:

search() メソッド これは、指定された文字列内の部分文字列の最初の文字のインデックスを検索するために使用される組み込みの JavaScript 関数でもあります。このメソッドは、文字列の先頭から開始して、指定された部分文字列が最初に出現するインデックスを返します。部分文字列が見つからない場合、メソッドは戻ります。 -1

構文:

を使用するための構文 search() メソッド 以下のとおりであります:

 string.search(regexp) 

ここ、 は検索する文字列であり、 正規表現 それは 正規表現 検索するパターン。もし 正規表現 パターンが見つかった場合、 検索() このメソッドは、一致した最初の文字のインデックスを返します。正規表現パターンが見つからない場合、メソッドは戻ります。 -1

例:

理解するために例を挙げてみましょう 検索() 方法:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

出力:

 16 

説明:

ここで、 検索() メソッドは、 正規表現 パターン /強力/ 文字列の中で 「JavaScript は強力なプログラミング言語です」 。正規表現パターンが単語と一致するため、 「強力な」 、メソッドは戻ります 16

IndexOf() と search() の違い:

どちらもですが の指標() そして 検索() メソッドは、指定された文字列内の部分文字列を検索するために使用されますが、いくつかの重要な違いがあります。これらの違いを並べて見てみましょう。

IndexOf() メソッド search() メソッド
の指標() メソッドは、指定された文字列内で指定された部分文字列を検索します。 検索() メソッドは、指定された文字列内の正規表現パターンを検索します。
IndexOf() メソッドは、指定された部分文字列が最初に出現したインデックスを返します。 search() メソッドは、一致した最初の文字のインデックスを返します。
IndexOf() メソッドは正規表現をサポートしていません。 search() メソッドは正規表現をサポートしています。
IndexOf() メソッドは、オプションのパラメーター fromIndex を受け入れて、特定のインデックスから検索を開始できます。 search() メソッドは、特定のインデックスから検索を開始するためのオプションのパラメーターを受け入れません。
IndexOf() メソッドは正規表現をサポートしていないため、search() メソッドよりも高速です。 search() メソッドは正規表現をサポートしているため、indexOf() メソッドよりも遅くなります。
IndexOf() メソッドでは大文字と小文字が区別されます。 search() メソッドもデフォルトでは大文字と小文字が区別されますが、次のコマンドを使用して大文字と小文字を区別しないようにすることもできます。 /i フラグ 正規表現パターンで。
IndexOf() メソッドは、単純な文字列検索に広く使用されています。 search() メソッドは、正規表現を使用した複雑なパターン マッチングに広く使用されています。

結論:

結論から言うと、どちらも の指標() そして 検索() メソッドは、指定された文字列内の部分文字列を検索する場合に便利です。ただし、さまざまな使用例に適したものにするための重要な違いがいくつかあります。 indexOf() メソッドは高速で単純な文字列検索に適していますが、search() メソッドは正規表現をサポートしており、複雑なパターン マッチングにより適しています。プログラムの特定の要件に基づいて適切な方法を選択することが重要です。