За последние 24 часа нас посетили 52411 программистов и 1798 роботов. Сейчас ищут 756 программистов ...

смотрел тему для новичков preg_match

Тема в разделе "PHP для новичков", создана пользователем Puaris83, 2 авг 2015.

  1. Puaris83

    Puaris83 Новичок

    С нами с:
    1 янв 2015
    Сообщения:
    14
    Симпатии:
    0
    Если есть координаты 47.00416646,37.35316219

    как проверить их правильность, я читал мануал, но чё-то не понимаю, почему так всё грустно, подскажите?

    Код (PHP):
    1. $coordinats='47.00416646,37.35316219';
    2.  
    3. if(preg_match("/\d{2}.\d{8},\d{2}.\d{8}/",$coordinats))
    4. {
    5. $coordinats_err.='<p>Координаты указаны неверно</p>';
    6. }
    7. else{
    8. $coordinats_err.='<p>Координаты указаны хорошо</p>';
    9. } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Я бы добавил:
    "/^\d{2}\.\d{8},\d{2}\.\d{8}$/"
    Чтобы было полное соответствие и корректное восприятие точек, а вообще тут есть ссылка на правильный мануальчик по регулярным выражениям
    http://php.ru/manual/regexp.reference.delimiters.html
    С правой стороны там содержание в виде меню.
     
  3. Puaris83

    Puaris83 Новичок

    С нами с:
    1 янв 2015
    Сообщения:
    14
    Симпатии:
    0
    всё равно не сработало, какие ещё мысли?
     
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Не сработало что?
    1. Парсер выдал ошибку
    2. Кушает любой набор символов
    3. Не кушает правильную комбинацию

    [​IMG]
    Единственное, что еще можно добавить - (str)$coordinats (Но это вряд ли)
     
  5. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Ну как у вас все будет верно, если у вас в истине стоит якобы не правильно, а в лжи - стоит якобы правильно. Значит, надо, поставить " ! " - перед preg_match. Либо поменять ошибки местами.

    Код (PHP):
    1. $coordinats='47.00416646,37.35316219';
    2. print_r(preg_match("/\d{2}.\d{8},\d{2}.\d{8}/",$coordinats)); //true
    3.  
    4. $coordinats='47.00416646 - 37.35316219';
    5. print_r(preg_match("/\d{2}.\d{8},\d{2}.\d{8}/",$coordinats)); //false 
    Значит, Ваша регулярка, составлена верно.
     
  6. Puaris83

    Puaris83 Новичок

    С нами с:
    1 янв 2015
    Сообщения:
    14
    Симпатии:
    0
    О чудо, но сегодня и у меня работает, ничего не менял. Может глюк был.
     
  7. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Не совсем
    Код (PHP):
    1. $coordinats='47 00416646,37 35316219';
    2. print_r(preg_match("/\d{2}.\d{8},\d{2}.\d{8}/",$coordinats)); //true
    3.  
    4. $coordinats='some text 47200416646,37/35316219 some text';
    5. print_r(preg_match("/\d{2}.\d{8},\d{2}.\d{8}/",$coordinats)); //true
    6.  
     
  8. Puaris83

    Puaris83 Новичок

    С нами с:
    1 янв 2015
    Сообщения:
    14
    Симпатии:
    0
    И, что не так? Действительно не работает.
     
  9. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Выше всё написано: