通常はサイト名の形式またはデバイスの MAC アドレスを使用して、ユーザーが検索クエリを送信できるようにするスクリプトがあります。検索をできるだけシンプルに保ちたいので、検索フィールドは 1 つだけにして、ユーザーが検索対象を指定するための選択フィールドやラジオ ボタンで混乱させたくありません。バックエンドで自動的に処理したい。
これらの形式のいずれかで、サイト名が検索されることを期待する方法は次のとおりです。
文字と数字は単なる例であり、この形式であれば何でもかまいません。
TX-DAL0099A1
TX-DAL0099A
TX-DAL0099
DAL0099A1
DAL0099A
DAL0099
または MAC アドレスによる
00 11 22 33 44 55
00:11:22:33:44:55
00.11.22.33.44.55
00-11-22-33-44-55
001122334455
最初にサイト名 (最初の例) であるかどうかを確認し、そうでない場合は MAC アドレスであることを確認する最善の方法を探しています。検索クエリで preg_replace 関数を実行して、ハイフン、ピリオド、コロンなどのその他の文字を削除したくありません。実際にサイト名の TX- 部分をプレフィックスとして付けることが重要であるためです。検索されているサイト名。
注: サイト名にプレフィックスが含まれているかどうか、および例の末尾に A/A1 があるかどうかを確認する必要があります。それらは重要です。
それが理にかなっていることを願っています。=/
ああ、私はこれを PHP で行っています - それについて言及するのを忘れていました。
更新: このコード スニペットは機能しますか?
if(preg_match("/^([0-9A-F]{2}[:-\s]?){5}([0-9A-F]{2})$/", $input)) {
// SEARCH IS A MAC ADDRESS
}
else if((($query = $mysqli->query("SELECT * FROM `table` WHERE `site` LIKE '%$input%'")) !== false) && $query->num_rows() > 0) {
// SEARCH IS A SITE AND FOUND ROW IN DATABASE
}
else {
// NEITHER SITE NOR MAC, OR COULDN'T BE FOUND
}