Метод isLatLong предназначен для проверки строки,
содержащей географические координаты в формате широты и долготы. Он
используется для валидации пользовательского ввода, API-запросов и любых
данных, где требуется строгое соответствие координатной системе.
Основная задача метода — определить, соответствует ли строка корректной паре чисел, где:
Метод ориентирован на работу с текстовым представлением координат, а не с объектами или массивами.
isLatLong(str [, options])
Параметры:
str — строка, содержащая координаты.options — необязательный объект конфигурации, влияющий
на строгость проверки и допустимые форматы.Возвращаемое значение:
true — если строка является корректной парой
координат.false — если формат или значения не соответствуют
требованиям.Метод ориентирован на стандартный формат:
latitude,longitude
Пример:
"51.5074,-0.1278"
Допускаются следующие особенности формата:
В некоторых конфигурациях возможно распознавание координат в формате DMS (degrees, minutes, seconds), однако основной режим работы — десятичные значения.
Для корректной валидации применяются географические ограничения:
-90 до 90-180 до 180Любое значение вне этих диапазонов считается некорректным.
Примеры некорректных данных:
"120,50" — широта вне диапазона"45,200" — долгота вне диапазона"abc,def" — нечисловые значенияПри вызове isLatLong выполняется последовательность
проверок:
,.Если хотя бы один этап не проходит проверку, результатом становится
false.
import validator from 'validator';
validator.isLatLong("40.7128,-74.0060");
// true
validator.isLatLong("40.7128 -74.0060");
// false
Причина — отсутствие запятой как разделителя.
function validateCoordinates(input) {
return validator.isLatLong(input);
}
validateCoordinates("55.7558,37.6173");
// true
В зависимости от конфигурации библиотеки допускаются или запрещаются пробелы вокруг запятой:
validator.isLatLong("48.8566, 2.3522");
// может быть true или false в зависимости от strict-режима
При строгой валидации пробелы считаются нарушением формата.
1. Передача массива вместо строки
validator.isLatLong([40.7, -74.0]); // false
2. Использование точки с запятой
validator.isLatLong("40.7;-74.0"); // false
3. Перепутанный порядок координат
validator.isLatLong("-74.0,40.7");
// формально валидно, но географически может быть ошибочным
4. Лишние символы
validator.isLatLong("40.7,-74.0 N"); // false
Некоторые значения формально проходят проверку, но требуют дополнительной бизнес-логики:
"0,0" — допустимо, но часто используется как значение
по умолчанию"90,180" — крайние допустимые координаты"-90,-180" — минимальные границы системы координатМетод не определяет географическую корректность точки, он проверяет только синтаксис и диапазоны.
При работе с API метод часто применяется для защиты от некорректных данных:
app.post("/location", (req, res) => {
const { coordinates } = req.body;
if (!validator.isLatLong(coordinates)) {
return res.status(400).send("Invalid coordinates");
}
res.send("OK");
});
Такая проверка снижает риск попадания некорректных географических данных в базу.
isLatLong часто используется вместе с:
isFloat — для предварительной проверки числовых
значенийtrim — для удаления лишних пробеловКомбинирование позволяет расширить контроль над входными данными, особенно в сложных системах геолокации.
Метод обеспечивает базовый уровень защиты от некорректных координат на этапе валидации входных данных.