За последние 24 часа нас посетили 15030 программистов и 1770 роботов. Сейчас ищут 1373 программиста ...

unexpected "{" в регулярке

Тема в разделе "Регулярные выражения", создана пользователем SamyRed, 7 июн 2016.

  1. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Здравствуйте.
    Вываливается ошибка, при обработке регулярного выражения:
    PHP:
    1. if (preg_match ("/^[a-zа-я\ ]{1,25}$/iu", $name)...
    Вот сама ошибка:
    upload_2016-6-7_22-17-24.png
    --- Добавлено ---
    Причём такое выражение:
    PHP:
    1. if (preg_match ("/^[a-zа-я0-9_\-\ ]{6,100}$/iu", $pass))
    работает.
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    где то лишнее "{", регулярное выражение тут не причем.
     
    SamyRed нравится это.
  3. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Вроде всё проверил....
    PHP:
    1. <?php
    2.  
    3. if (isset ($_POST["do"])) {
    4.  
    5.     if ($_POST["do"] == "reg_email") {
    6.  
    7.         if (isset ($_POST["email"])) {
    8.  
    9.             $email = $_POST["email"];
    10.             if (empty ($email) || strlen ($email) == "0") {
    11.  
    12.                 die ("empty_email");
    13.  
    14.             } else {
    15.  
    16.                 if (filter_var ($email, FILTER_VALIDATE_EMAIL)) {
    17.  
    18.                     die ("correct_email");
    19.  
    20.                 } else die ("uncorrect_email");
    21.  
    22.             }
    23.  
    24.         } else die ("expected_email");
    25.  
    26.     } else if ($_POST["do"] == "reg_pass") {
    27.        
    28.         if (isset ($_POST["password"])) {
    29.            
    30.             $pass = $_POST['password'];
    31.             if (empty ($pass) || strlen ($pass) == "0") {
    32.                
    33.                 die ("empty_password");
    34.                
    35.             } else {
    36.            
    37.                 if (preg_match ("/^[a-zа-я0-9_\-\ ]{6,100}$/iu", $pass)) {
    38.                    
    39.                     die ("correct_password");
    40.                    
    41.                 } else die ("uncorrect_password");
    42.                
    43.             }
    44.            
    45.         } else die ("expected_password");
    46.        
    47.     } else if ($_POST["do"] == "reg_passr") {
    48.  
    49.         if (isset ($_POST["passwordr"]) && isset ($_POST["passwordr"])) {
    50.            
    51.             $pass = $_POST['password'];
    52.             $passr = $_POST['passwordr'];
    53.             if (!isset ($passr) || strlen ($passr) == "0") {
    54.                
    55.                 die ("empty_passwordr");
    56.                
    57.             } else {
    58.            
    59.                 if ($pass == $passr) {
    60.                    
    61.                     die ("passwords_match");
    62.                    
    63.                 } else die ("passwords_no_match");
    64.                
    65.             }
    66.            
    67.         } else die ("expected_passwordr");
    68.        
    69.     } else if ($_POST["do"] == "reg_name") {
    70.  
    71.         if (isset ($_POST["name"])) {
    72.            
    73.             $name = $_POST['name'];
    74.             if (empty ($name) || strlen ($name) == "0") {
    75.                
    76.                 die ("empty_name");
    77.                
    78.             } else {
    79.            
    80.                 if (preg_match ("/^[a-zа-я\ ]{1,25}$/iu", $name) {
    81.                    
    82.                     die ("correct_name");
    83.                    
    84.                 } else die ("uncorrect_name");
    85.                
    86.             }
    87.            
    88.         } else die ("expected_name");
    89.        
    90.     } else if ($_POST["do"] == "reg_surname") {
    91.  
    92.         if (isset ($_POST["surname"])) {
    93.            
    94.             $surname = $_POST['surname'];
    95.             if (!isset ($surname) || strlen ($surname) == "0") {
    96.                
    97.                 die ("empty_name");
    98.                
    99.             } else {
    100.            
    101.                 if (preg_match ("/^[a-zа-я]{1,25}$/iu", $surname) {
    102.                    
    103.                     die ("correct_name");
    104.                    
    105.                 } else die ("uncorrect_name");
    106.                
    107.             }
    108.            
    109.         } else die ("expected_name");
    110.        
    111.     }
    112.  
    113. } else die ("data_error");
    114.  
    115. ?>
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    используй IDE, что бы тебе сразу такого рода ошибки подсвечивало.
    строка 101:
    PHP:
    1. if (preg_match ("/^[a-zа-я]{1,25}$/iu", $surname) {
    где закрывающая круглая скобка от if ?
    --- Добавлено ---
    и какое то болото у тебя код, неправильно так писать.
     
    SamyRed нравится это.
  5. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну так перед else (105 строка)
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    скобка круглая, не фигурная.
     
  7. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Точно. Спасибо. А я фигурные искал.
    --- Добавлено ---
    Всё равно ту же ошибку выдаёт
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    чувак используй классы и разбивай те или иные проверки на методы, в конце концов анонимные функции используй.
     
  9. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    А, не всё норм. Спасибо ещё раз
    --- Добавлено ---
    Ну как разберусь с ООП - буду классы юзать)
     
    #9 SamyRed, 7 июн 2016
    Последнее редактирование: 7 июн 2016
  10. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Зачем, что - то искать, когда можно прочитать :)
    Не знаешь англ., вбей в переводчик.
    Там отражена суть ошибки, что неожиданный { на строке такой - то, смотря на строку можно понять, что с ней не так.
    Старайся переводить ошибки, так ты потом сможешь лучше ориентироваться какая ошибка и что значит.
    Так как если бы была в регулярке, то начало ошибки было бы вида:

    Warning: preg_match(): No ending matching delimiter '}' found in...