вопросы PHP регулярных выражений - PullRequest
2 голосов
/ 05 сентября 2010

У меня здесь совпадение с шаблоном, которое выглядит так, как будто оно должно работать нормально. Однако любой ввод, который я даю, приводит к условному сбою. Я займусь делом «99999-9999» после того, как получу дело «99999».

$ ZipCode - это текстовое поле, которое отправляется на POST.

$ZipCode                        = $_POST["ZipCode"];

if(!preg_match("/^[0-9]{5}$/", $ZipCode))
{$error_str .= "The zip code you enter must be in the form of: '99999' or '99999-9999'\n";}

if(isset($_POST['submit']))
{?><script>var error = <?= json_encode($error_str);?>;
   alert(error);
  </script>
<?}

11111 'терпит неудачу и' 111111 'также терпит неудачу

1 Ответ

2 голосов
/ 05 сентября 2010

Ваш код должен работать правильно. Пример:

$ZipCode = "111111";

if(!preg_match("/^[0-9]{5}$/", $ZipCode))
{
    echo "Incorrect format";
}

Результат:

Incorrect format

Попробуйте ввести неверный ввод, чтобы увидеть, отображается ли сообщение об ошибке.


Чтобы обработать оба случая одновременно, вы можете использовать это регулярное выражение:

/^[0-9]{5}(?:-[0-9]{4})?$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...