JavaScriptで文字列の中に指定した文字列が入っているかを調べるときに便利なメソッドが用意されています。
指定した文字列を含むか調べる便利なメソッド一覧
主なメソッドは以下の6つです。
| メソッド | 内容 |
|---|---|
| starsWith | 指定した文字列で始まる場合にtrueを返す |
| endsWith | 指定した文字列で終わる場合にtrueを返す |
| indexOf | 指定した文字列が開始するインデックス番号を返す。マッチしない場合は-1を返す |
| lastIndexOf | indexOfの逆検索。indexOfは前方から検索するのに対し、後方から検索する |
| search | 指定したパターンに一致したインデックス番号を返す。マッチしない場合は-1を返す |
| test | 指定したパターンに一致するものがあればtrueを返す |
starsWithメソッド
指定した文字列で始まっているかを確認するメソッドです。
基本構文
str.startsWith("検索する文字列"[, 開始位置])第2引数で検索を開始する位置を指定することができます。
対象は文字列なので、1文字目が0番目、2文字目が1番目、、、となります。
実例
例1:一致する
str = "大切な番号は★1234★です。"
str.startsWith("大切な")
#出力
true例2:一致しない
str = "大切な番号は★1234★です。"
str.startsWith("番号は")
#出力
false例3:開始番号を指定
str = "大切な番号は★1234★です。"
str.startsWith("番号は", 3)
#出力
trueendsWithメソッド
指定した文字列で終わっているかを確認するメソッドです。
基本構文
str.endsWith("検索する文字列"[, 文字列の長さ])第2引数で検索する文字列の長さを指定することができます。
例えば、10と指定するれば、検索対象の文字列の前方から10文字までが対象となります。
実例
例1:一致する
str = "大切な番号は★1234★です。"
str.endsWith("です。")
#出力
true例2:一致しない
str = "大切な番号は★1234★です。"
str.endsWith(1234)
#出力
false例3:検索対象の文字数を指定
str = "大切な番号は★1234★です。"
str.endsWith(1234, 11)
#出力
trueindexOfメソッド
指定した文字列が開始するインデックス番号を返します。存在しない場合は-1を返します。
基本構文
arr.indexOf("検索する文字列"[, 検索の開始位置])第2引数で検索を開始する位置を指定することができます。
対象は文字列なので、1文字目が0番目、2文字目が1番目、、、となります。
第2引数で検索の開始位置を指定した場合でも、戻り値は対象の文字列(配列)全体のでのインデックス番号を返します。
実例
例1:存在する
str = "大切な番号は★1234★です。"
str.indexOf("番号")
#出力
3例2:存在しない
str = "大切な番号は★1234★です。"
str.indexOf("テスト")
#出力
-1例3:開始番号を指定(存在しない)
str = "大切な番号は★1234★です。"
str.indexOf("番号", 4)
#出力
-1例4:開始番号を指定(存在する)
str = "大切な番号は★1234★です。"
str.indexOf("番号", 2)
#出力
3lastIndexOfメソッド
indexOfが前から検索して、指定した文字列が開始するインデックス番号を返します。存在しない場合は-1を返します。
これに対して、lastIndexOfは後ろから検索します。
基本構文
arr.indexOf("検索する文字列"[, 検索の開始位置])第2引数で検索を開始する位置を指定することができます。
対象は文字列なので、1文字目が0番目、2文字目が1番目、、、となります。
実例
str = "大切な番号は★1234★です。"
str.lastIndexOf("★")
#出力
11
▼indexOfの場合
str = "大切な番号は★1234★です。"
str.indexOf("★")
#出力
6searchメソッド
指定したパターンがあるか調べるメソッドです。引数はパターンを指定します。
存在する場合はマッチしたインデックス番号を返します。存在しない場合は-1を返します。
引数のパターンは /パターン/か、new RegExpで生成した正規表現のオブジェクトを指定します。
基本構文
str.search(regexp)実例
例1:マッチする
str = "大切な番号は★1234★です。"
str.search(/[0-9]/)
#出力
7例2:マッチしない
str = "大切な番号は★1234★です。"
str.search(/test/)
#出力
-1例3:変数に代入して渡す
str = "大切な番号は★1234★です。"
regexp = /[0-9]/
str.search(regexp)
#出力
7testメソッド
正規表現(パターン)をオブジェクトとして、文字列の中にそのパターンに一致するものがあるか確認します。
一致するものがあればtrueをなければfalseを返します。
startsWithやendsWithと異なり引数に文字列を渡します。
基本構文
regexObj.test(文字列)regexObjとは、正規表現(パターン)を指定するオブジェクトです。作成方法は2つあります。
/パターン/new RegExp('パターン')
/パターン/
/ /で囲むことで正規表現のオブジェクトであることを指定します。
/[0-9]/new RegExp(‘パターン’)
RegExpクラスからインスタンスを生成します。
number = new RegExp('[0-9]')
実例
例1:/ /を使う
str = "大切な番号は★1234★です。"
/[0-9]/.test(str)
#出力
true引数で渡した文字列の中に数値が含まれているのでtrueを返します。
例2:new RegExpを使う
str = "大切な番号は★1234★です。"
number = new RegExp('[0-9]')
number.test(str)
#出力
trueマッチする文字列を抽出・変換するメソッド
マッチする文字列を抽出・変換する主なメソッドは次の4つになります。
| メソッド | 内容 |
|---|---|
| match | 指定したパターンにマッチする文字列を返す |
| replace | 指定したパターンにマッチする文字列を置換する |
| replaceAll | 指定したすべての文字列を置換する |
| split | 指定した文字列やパターンで区切って配列を返す |
参考リンク
- MDN String.prototype.startsWith()
- MDN String.prototype.endsWith()
- MDN Array.prototype.indexOf()
- MDN Array.prototype.lastIndexOf()
- MDN String.prototype.search()
- MDN RegExp.prototype.test()



