1

私は郵便番号配列を持っています:

$firstPostcode = array(
    'se1',
    'ec2a',
    'se16',
);

上記の配列に対して、ユーザーの英国の郵便番号の最初の 4 文字を検証する必要があります。

私が抱えている問題は、一度に1文字ずつループする必要があることです。一部の入力は、おそらく 4 文字またはスペースを含む 3 文字です。

preg match と in array を試しましたが、何時間もグーグル検索しても解決できません

アドバイスをありがとう。

私が抱えている問題は、配列全体が4文字で始まっていないことです

4

1 に答える 1

1

単一の正規表現と一致できるはずです。

$firstPostcode = array(
    'se1',
    'ec2a',
    'se16',
);
$rx = '!^\s*('.implode('|', $firstPostcode).')!i';

if (preg_match($rx, $input)){
    # postcode matches!
}

は、次のような正規表現を作成します。

!^\s*(se1 |ec2a|se16)!i

これは、文字列の先頭にあるプレフィックスの 1 つに一致し (最初にスペースをスキップします)、大文字と小文字は区別されません。

于 2012-04-24T18:33:02.657 に答える