支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • JavaScriptにて文字列を検索

1.JavaScriptにて文字列を検索する

JavaScriptにて文字列の検索を行う場合、いくつかのメソッドが存在していますのでその一部についての使用例を記載します。

・JavaScriptのindexOfメソッドを使用して文字列を検索する

JavaScriptのindexOfメソッドは、対象の文字列の最初から引数に指定した文字列を検索し、指定された値が最初に見つかった位置を返します。見つからない場合は-1を返します。
indexOfメソッドの記述方法は以下になります。
文字列.indexOf(検索したい文字列[, 検索開始位置])
使用例は以下になります。
const strData = '白、黒、三毛、茶トラ、黒、白';
const searchData = '黒';
let index1 = strData.indexOf(searchData); // 2
let index2 = strData.indexOf(searchData, 3); // 11

・JavaScriptのlastIndexOfメソッドを使用して文字列を検索する

JavaScriptのlastIndexOfメソッドは、対象の文字列の最後から引数に指定した文字列を検索し、指定された値が最初に見つかった位置を返します。見つからない場合は-1を返します。
lastIndexOfメソッドの記述方法は以下になります。
文字列.lastIndexOf(検索したい文字列[, 検索開始位置])
使用例は以下になります。
const strData = '白、黒、三毛、茶トラ、黒、白';
const searchData = '黒';
let index1 = strData.lastIndexOf(searchData); // 11
let index2 = strData.lastIndexOf(searchData, 10); // 2

・JavaScriptのsearchメソッドを使用して文字列を検索する

JavaScriptのsearchメソッドは、正規表現による検索を行い一致した位置を返します。一致しなかった場合は-1を返します。
JavaScriptのsearchメソッドの記述方法は以下になります。
文字列.search(正規表現)
使用例は以下になります。
const strData = '白、黒、三毛、茶トラ、黒、白';
const searchData = /三毛/;
let index = strData.search(searchData); // 4

searchメソッドの記載の部分に出てきた正規表現については、以下に概要を記載します。
正規表現とは、文字列の集合を一つの文字列で表現する方法の一つです。正則表現とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われます。まれに正規式と呼ばれることもあます。
以下に、JSにて正規表現で使用する記号について一部記載します。
・^(カレット)…入力の先頭にマッチします。
/^a/であれば、abcという文字列の先頭であるaにマッチし、cbaではマッチしません。
・$(ドル)…入力の末尾にマッチします。
/a$/であれば、bcaには最後の文字aがマッチし、acbにはマッチしません。
・*(アスタリスク)…直前の0回以上の繰り返しにマッチします。
/ab*/であれば、aまたはabbbb...にマッチし、bbbbにはマッチしません。
・[ ]…カッコの中の任意の1文字と一致します。「-」で範囲指定も可能です。
/[a-z]/であれば、aからzまでの全てのアルファベットにマッチします。
・+(プラス)…直前の文字の一回以上の繰り返しにマッチします。
/ab+/なら、ab、abbb….にマッチしますが、bbbb...にはマッチしません。
・?(クエスチョン)…直前の文字の0回もしくは、1回の出現にマッチします。
/hoge?/なら、hoge、hogにマッチしますが、hogeeeeにはhogeにのみ部分的にマッチし、続くeeeにはマッチしません。
・{n}…直前の文字n個の繰り返しとマッチします。
[0-9]{3}は3桁の数字
・{n,}…直前の文字n個以上の繰り返しとマッチします。
[0-9]{3,}は3桁以上の数字
・{m,n}…直前の文字をm~n回と一致します。
[0-9]{3,5}は3~5桁の数字
・.(ドット)…改行文字以外のどの1文字にもマッチします。
/.n/なら、narrow street was on an appleのon anのnにはマッチしますが、narrowのnは改行文字なのでマッチしません。

2.最後に

JavaScriptにて文字列を検索する場合、単純な単語などの検索ならば、indexOfメソッド、lastIndexOfメソッドを使用するでいいかもしれませんが、正規表現が使用できるsearchメソッドを使えばより複雑な条件の検索を行うことが出来ます。今回、JavaScriptにて文字列を検索できそうなメソッドの一部のみ記載していますので必要に応じて使えそうなメソッドを使ってください。