У меня есть следующий код для проверки ик почтовых индексов Я использую это как правила проверки в CodeIgniter, но я получаю следующее предупреждение:Uk проверки почтовых индексов Предупреждение Сообщение
Серьезность: Предупреждение
сообщение: preg_match() [function.preg матча]: Компиляция не удалось: отсутствует) по смещению 426
Имя файла: модели/user_profile.php
Порядковый номер: 126
Он всегда возвращает значение false, независимо от того, какой почтовый индекс введен, может кто-нибудь определить, что не так?
//Check and validate uk postcode
function _valid_postcode($field) {
$regex = '!^([A-PR-UWYZa-pr-uwyz]([0-9]{1,2}|([A-HK-Ya-hk-y][0-9]|[A-HK-Ya-hk-y][0-9]([0-9]|[ABEHMNPRV-Yabehmnprv-y]))|[0-9][A-HJKS-UWa-hjks-uw])\{0,1}[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}|([Gg][Ii][Rr]\0[Aa][Aa])|([Ss][Aa][Nn]\{0,1}[Tt][Aa]1)|([Bb][Ff][Pp][Oo]\{0,1}([Cc]\/[Oo]\)?[0-9]{1,4})|(([Aa][Ss][Cc][Nn]|[Bb][Bb][Nn][Dd]|[BFSbfs][Ii][Qq][Qq]|[Pp][Cc][Rr][Nn]|[Ss][Tt][Hh][Ll]|[Tt][Dd][Cc][Uu]|[Tt][Kk][Cc][Aa])\{0,1}1[Zz][Zz]))$!';
$result = preg_match($regex, $field);
if($result > 0) {
return TRUE;
} else {
$this->error_message($field, 'Please enter a valid postcode');
//return FALSE;
}
}
Вы можете упростить свое регулярное выражение, сделав его нечувствительным к регистру. – Xophmeister
Кажется, что не нравится SW1A 1AA, который является действующим британским почтовым индексом –