2013-11-12 2 views
1

Я проделал много, чтобы найти действительное регулярное выражение в javascript для проверки широты и долготы в отдельности.проверить длину и долготу jQuery

но тщетно ..

попытался следующие, но не работает ..

var latlngVal = /^-?([0-8]?[0-9]|90)\.[0-9]{1,6},-?((1?[0-7]?|[0-9]?)[0-9]|180)\.[0-9]{1,6}$/; 
    if (!latlngVal.test(this.value)) { 
     //logic 
    } 

может кто-нибудь сказать мне самый простой способ проверки широты и долготы, введенный в текстовое поле .

Или есть аннотация mvc для проверки широты и долготы?

+1

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

+1

Я бы добавил некоторые пробелы (до, до и после «,», после). Кстати, что не работает? – hgoebl

+0

Его указание «Локатор и долгота неверно напечатаны» для 24.791722, что правильно –

ответ

0

Я сделал это со следующими ..

$(".longitude").focusout(function() { 
    debugger; 
    var lngVal = /^-?((1?[0-7]?|[0-9]?)[0-9]|180)\.[0-9]{1,6}$/; 
    if (!lngVal.test(this.value)) { 
     //logic 
    } 
}); 

для широты использования проверки

var latVal = /^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/;

+0

Это действительно неверно, так как оно принимает значения от 180 до 181: оба являются равными -180.791722 и 180.791722, которые явно недействительны. То же самое касается широты, принимаются значения -90.791722 и 90.791722. Вы можете исправить это, выполнив дополнительные проверки, если вы не хотите усложнять правила: if (lat> 90 || lat <-90) return false; –

Смежные вопросы