1

我有一个邮政编码数组:

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

我需要针对上述数组验证用户英国邮政编码的前 4 个字符。

我遇到的问题是我需要一次循环一个字符。一些输入可能是 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

这匹配字符串开头的一个前缀(首先跳过任何空格)并且不区分大小写。

于 2012-04-24T18:33:02.657 回答