регулярки для проверки широты и долготы в градусах с десятичной дробью

271
28 февраля 2017, 18:34

Так понимаю, что у широты макс 8 символов, 6 из которых идут после точки и знак "-", а у долготы макс 9 символов, 6 идут после точки и знак "-".

preg_match('/^\d{2}.\d{6}$/D', $_GET['latitude'])
preg_match('/^\d{3}.\d{6}$/D', $_GET['longitude'])
// 57.904683, -122.210420

Если верно, то как правильно указать необязательный "минус" в preg_match?

Answer 1

Необязательный минус указывается в регулярном выражении с помощью квантификатора ?:

^-?\d{2}\.\d{6}$
  • ^ - начало строки
  • -? - 1 или 0 минусов (квантификатор ? делает подшаблон необязательным)
  • \d{2} - 2 цифры
  • \. - точка (этот знак нужно экранировать, т.к. это спецсимвол, отлавливающий любой символ кроме знаков перевода строки)
  • \d{6} - 6 цифр
  • $ - конец строки (или \z, чтобы не использовать /D)
Answer 2

Т.к. первые цифры могут быть в диапазоне от 1 до 3 то это тоже необходимо указать. {1,3} Минус -? 0 или 1

preg_match('/^-?\d{1,2}\.\d{6}$/D', $_GET['latitude'])
preg_match('/^-?\d{1,3}\.\d{6}$/D', $_GET['longitude'])
Answer 3

Попробуйте так:

preg_match('/^[0-9]{2}\.[0-9]{6}$/D', $_GET['latitude'])
preg_match('/^\-[0-9]{3}\.[0-9]{6}$/D', $_GET['longitude'])
READ ALSO
Почему vk api возвращает пустое “photo”:“[]”?

Почему vk api возвращает пустое “photo”:“[]”?

Я уже все способы попробовал которые гугл выдавал, но так и не пойму, что не так сделал, подскажитеЗаранее спасибо!)

349
Вывод самых популярных товаров

Вывод самых популярных товаров

Подскажите, как заменить этот код шорткода на аналогичный код, в котором используется WP_Query?

299
Реальна ли минификация html на CMS Bitrix?

Реальна ли минификация html на CMS Bitrix?

Я думаю что многие знают способ минификации html с помощью php:

474
Как правильно реализовать корзина на PHP

Как правильно реализовать корзина на PHP

Друзья помогите реализовать корзину на PHPАлгоритм таков Администратор сайта добавляет товар через админку ,а затем товар попадает в базу...

301