正規表現を使わない文字列検索

PHPでよく使う文字列の検索方法、前方一致、後方一致

PHP

// 対象に検索文字列が含まれている場合はTRUE // $strが検索対象、'foo'が検索する文字列 if (mb_strpos($str, 'foo') !== FALSE) { echo "一致"; } else { echo "不一致"; } // 対象に検索文字列が含まれている場合はTRUE(大文字小文字区別せず) if (mb_stripos($str, 'foo') !== FALSE) { echo "一致"; } else { echo "不一致"; } // 前方一致 if (mb_strpos($str, 'foo') === 0) { echo "一致"; } else { echo "不一致"; } // 後方一致 if (mb_strrpos($str, 'foo') == mb_strlen($str) - mb_strlen('foo')) { echo "一致"; } else { echo "不一致"; } // 対象(配列)に検索文字列が含まれている場合はTRUE if (array_search('foo', $arr) !== FALSE){ echo "含む"; } else { echo "含まない"; } // 英字の場合、TRUE if (ctype_alpha($str)) { echo "英字"; } // 数字の場合、TRUE // ctype_digit(-1); FALSE // ctype_digit(0); FALSE // ctype_digit(1); FALSE // ctype_digit(1.5); FALSE // ctype_digit('0'); TRUE // ctype_digit('1'); TRUE // ctype_digit('-1'); FALSE // ctype_digit('1.5'); FALSE if (ctype_digit($str)) { echo "数字"; } // is_numeric(-1); TRUE // is_numeric(0); TRUE // is_numeric(1); TRUE // is_numeric(1.5); TRUE // is_numeric('0'); TRUE // is_numeric('1'); TRUE // is_numeric('-1'); TRUE // is_numeric('1.5'); TRUE if (is_numeric($str)) { echo "数字"; } // is_int(-1); TRUE // is_int(0); TRUE // is_int(1); TRUE // is_int(1.5); TRUE // is_int('0'); FALSE // is_int('1'); FALSE // is_int('-1'); FALSE // is_int('1.5'); FALSE if (is_int($str)) { echo "数字"; } // 英数字の場合、TRUE if (ctype_alnum($str)) { echo "英数字"; } // 空白文字の場合、TRUE // ctype_space(''); FALSE // ctype_space(""); FALSE // ctype_space('\n'); FALSE // ctype_space("\n"); TRUE // ctype_space("\t"); TRUE if (ctype_space($str)) { echo "空白"; } // メールアドレスの場合、TRUE if (filter_var($str, FILTER_VALIDATE_EMAIL)){ echo "メールアドレス"; }

大文字小文字を区別しないのであれば、対象に合わせて、小文字化 mb_strtolower($str) するか、大文字化 mb_strtoupper($str) して比較する。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について