JavaScriptで文字列が条件に一致するかチェックする方法まとめ

色々あって忘れがちなJavaScriptで文字列が条件に一致するかチェックする方法のまとめです。

指定された文字列が含まれるか

'あいうえお'.includes('いうえ'); // true
'あいうえお'.includes('きくけ'); // true

指定された文字列で始まるか

'あいうえお'.startsWith('あいう'); // true
'あいうえお'.startsWith('かきく'); // false

指定された文字列で終わるか

'あいうえお'.endsWith('うえお'); // true
'あいうえお'.endsWith('くけこ'); // false

指定した正規表現にマッチするか

/[い-え]/.test('あいうえお'); // true
/[き-け]/.test('あいうえお'); // false

指定した正規表現にマッチした文字列を取得する

正規表現にgフラグがある場合と無い場合でレスポンスが変わるので注意。
gフラグが無い場合はRegExp.exec()の戻り値と同じものが返る。
マッチしなかった場合はnullが返るので注意。

// gフラグあり
'あいうえお'.match(/[い-え]/g); // [ 'い', 'う', 'え' ]
'あいうえお'.match(/[き-け]/g); // null

// gフラグ無し
'あいうえお'.match(/[い-え]/); // [ 'い', index: 1, input: 'あいうえお', groups: undefined ]
'あいうえお'.match(/[き-け]/); // null

指定した正規表現にマッチさせてキャプチャグループを取得する

マッチすると配列風のオブジェクトが返る。
インデックス0にマッチした全体、インデックス1以降に括弧で指定したグループにマッチしたキャプチャグループが返る。 マッチしなかった場合はnullが返るので注意。

/(い)(うえ)/.exec('あいうえお'); // [ 'いうえ', 'い', 'うえ', index: 1, input: 'あいうえお', groups: undefined ]
/(い)(くけ)?/.exec('あいうえお'); // [ 'い', 'い', undefined, index: 1, input: 'あいうえお', groups: undefined ]

/[き-け]/.exec('あいうえお'); // null