запрос проверяет, соответствует ли его широта или просто текст на карте
-
20-09-2019 - |
Вопрос
При поиске я хочу проверить, является ли запрос широтой и долготой или просто текстовым поиском с помощью PHP.
$query = '-122.0307642, 37.3316930';
широта и долгота также могут содержать '-' в них.
Что preg_match
что это будет за образец для этого?
Решение
Следующее регулярное выражение будет соответствовать двум числам (со знаком минус или без него, разделенным запятой) формата a.b
где a
и b
являются последовательностями цифр минимальной длины один.
(-?\d+\.\d+)\s*,\s*(-?\d+\.\d+)
Другие советы
Что- то вроде этого:
(-?\d+(?:\.\d+)?)(?:,\s*|\s+)(-?\d+(?:\.\d+)?)
Это даст вам два совпадения, которые затем вы можете преобразовать в floats и проверить на соответствие границам lat / lng.
Это также позволит разделять два числа пробелом.Если вы хотите разрешить только запятую, используйте:
(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)
Не связан с StackOverflow