За последние 24 часа нас посетили 20368 программистов и 1086 роботов. Сейчас ищут 873 программиста ...

Помогите с регулярным выражением.

Тема в разделе "Сделайте за меня", создана пользователем alex1753, 25 июл 2022.

  1. alex1753

    alex1753 Новичок

    С нами с:
    25 июл 2022
    Сообщения:
    2
    Симпатии:
    0
    Выполняю учебное задание по основам регулярных выражений.

    Задача сделать форму для отправки стоимсти хостинга и домена.
    Скрипт получает данные с формы, проверяет, являются ли они числами, а также состоят ли они из двух символов.
    Код написал, но при вводе более двух чисел, регулярное выражение срабатывает также как true.
    Запускал на Open Server.

    Для анализа вывел вверху переменные, а также результат работы функции preg_match.

    Код (Text):
    1. <?php
    2. $host = 0;
    3. $domen = 0;
    4. if(isset($_POST['go_rashod'])){
    5.     $host = htmlspecialchars($_POST ['hosting']);
    6.     $domen = htmlspecialchars($_POST ['domen']);
    7.     $reg = '/\d{1,2}/';
    8.     if (is_numeric($host) && is_numeric($domen) && preg_match($reg, $host) === 1){
    9.         echo '$host: ' . $host . '<br />';
    10.         echo '$domen: ' . $domen . '<br />';
    11.         echo preg_match($reg, $host) . '<br />';
    12.         echo 'Вы ввели правильные данные <br />';
    13.     }else{ echo 'Вы ввели неправильные данные <br />';
    14.         echo '$host: ' . $host . '<br />';
    15.         echo '$domen: ' . $domen . '<br />';
    16.         echo preg_match($reg, $host);
    17.     }
    18. }
    19. ?>
    20. <!DOCTYPE html>
    21. <html>
    22. <head>
    23.     <title>Бухгалтерия</title>
    24. </head>
    25. <body>
    26.     <h1> Моя бухгалтерия </h1>
    27.     <form name="rashodi" method="post">
    28.         <p> <b> Стоимость хостинга: </b>
    29.             <input type="text" name="hosting">
    30.         </p>
    31.         <p> <b>Стоимость домена: </b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    32.             <input type="text" name="domen">
    33.         </p>
    34.         <p> <input type="submit" name="go_rashod" value="Отправить"> </p>
    35.     </form>
    36. </body>
    37. </html>
     
  2. alex1753

    alex1753 Новичок

    С нами с:
    25 июл 2022
    Сообщения:
    2
    Симпатии:
    0
    Разобрался
    Код (Text):
    1. $reg = '/^[\d]{1,2}$/';