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)
#出力
true
endsWithメソッド
指定した文字列で終わっているかを確認するメソッドです。
基本構文
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)
#出力
true
indexOfメソッド
指定した文字列が開始するインデックス番号を返します。存在しない場合は-1を返します。
基本構文
arr.indexOf("検索する文字列"[, 検索の開始位置])
第2引数で検索を開始する位置を指定することができます。
対象は文字列なので、1文字目が0番目、2文字目が1番目、、、となります。
実例
例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)
#出力
3
lastIndexOfメソッド
indexOfが前から検索して、指定した文字列が開始するインデックス番号を返します。存在しない場合は-1を返します。
これに対して、lastIndexOfは後ろから検索します。
基本構文
arr.indexOf("検索する文字列"[, 検索の開始位置])
第2引数で検索を開始する位置を指定することができます。
対象は文字列なので、1文字目が0番目、2文字目が1番目、、、となります。
実例
str = "大切な番号は★1234★です。"
str.lastIndexOf("★")
#出力
11
▼indexOfの場合
str = "大切な番号は★1234★です。"
str.indexOf("★")
#出力
6
searchメソッド
指定したパターンがあるか調べるメソッドです。引数はパターンを指定します。
存在する場合はマッチしたインデックス番号を返します。存在しない場合は-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)
#出力
7
testメソッド
正規表現(パターン)をオブジェクトとして、文字列の中にそのパターンに一致するものがあるか確認します。
一致するものがあればtrueをなければfalseを返します。
startsWithやendsWithと異なり引数に文字列を渡します。
基本構文
regexObj.test(文字列)
実例
例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()