0

ユーザーが希望する検索の種類を制御する検索フィールドに接続された 2 つのラジオ ボタンがあります。
1 つは通常のキーワード検索用で、もう 1 つはナンバー プレート検索用です。

あらかじめ「キーワード」のラジオボタンが選択されているのですが、可能であればjQueryを使ってナンバープレートのパターンを検知すると自動的に「ナンバープレート」に切り替わるようにしたいのですが...

ナンバー プレートのパターンは、常に 2 文字 (AZ) で始まり、その後に「AZ12345」のように 5 つの数字 (0 ~ 9) が続きます。「ZA 98765」のようにスペースで区切られている可能性があります。

フォーム方法は_GET.

4

2 に答える 2

3

指示に従って、このパターンを使用してナンバープレートを検出できます

 [A-Za-z]{2}\s?\d{5}

プレートのみを一致させたい場合(例: liasdjfaAG 00212lkfla を一致させたくない) は、^[A-Za-z]{2}\s?\d{5}$代わりに使用してください。

textchanged イベントを使用して (この回答を見てください)、パターンが一致した場合にラジオ ボタンの「チェック済み」状態を変更できます。

編集:

jsfiddleで実装され、基本的にコードは次のようになります

var rege = /^[A-Za-z]{2}\s?\d{5}$/;

$('#inpt').keyup(function(event) {
    if (rege.test($('#inpt').val())) {
        $('#plate').attr('checked', true);
    } else {
        $('#nonplate').attr('checked', true);
    }
});

次のようなhtmlで:

<input type="text" id="inpt"/><br/>
<input type="radio" name="group1" id="plate" value="Plate"> Plate<br>
<input type="radio" name="group1" id="nonplate" value="NotPlate"> Not Plate

編集2:

あなたのリクエストに応えて、この質問を読むことをお勧めします。基本的にsetInterval()は、1 秒または 2 秒ごとに入力の状態を確認して、正しいラジオ ボタンを選択できます。この間隔も短くすることができます(〜100ミリ秒に設定)

于 2012-08-27T09:45:49.240 に答える
0

必要なのはこれだと思います:

function checkPlate($s) {
  $match = false;
  $s = strtoupper($s);
  $s = str_replace(" ","",$s);
  if (strlen($s) == 7) {
    preg_match(/[A-Z]{2}[0-9]{5}/, $s, $matches);
    if (count($matches) == 1) {$match = true;}
  }
  return $match;
}
于 2012-08-27T09:55:57.920 に答える