JavaScript

【JavaScript】~を含むかのチェック

More than 1 year has passed since last update.

matchを使う方法

str.match(/文字列/)で、文字列が含まれれば配列、文字列が含まれなければnullが返ることを利用する。

if ( str.match(/hoge/)) {
//strにhogeを含む場合の処理

}

indexOfを使う方法

str.indexOf(文字列)で、文字列が見つかれば文字列が見つかった場所(0以上)、文字列が見つからなければ-1が返ることを利用する。

返り値!=-1
if ( str.indexOf('hoge') != -1) {
//strにhogeを含む場合の処理

}
ビット反転演算子
if ( ~str.indexOf('hoge')) {
//strにhogeを含む場合の処理

}

ビット反転演算子の解説

文字列が見つからない場合、indexOfが-1を返す。-1をビット反転演算子にかけると、0が返る。if文では、0が真と判定される。

※ビット反転演算子
整数をビット反転演算子にかけると、符号を反転してマイナス1した数になる。
例)
~1 → -2
~-1 → 0
~0 → -1