2012-06-13 7 views
3

위도와 경도에 대한 유효성 검사를 만들고 있습니다.jQuery에서 위도와 경도와 전자 메일 주소의 유효성을 검사하는 방법

var latlngVal = /^(-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}),{1}(-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\.{1}\d{1,6})/; 
var latlng = $("input#latlng").val(); 
var invalid_latlng = 'Latitude and Longitude are not correctly typed'; 

// Validate Latitude and Longitude 
if(!latlngVal.test(latlng)) { 

    // ERROR 

    $("#error").html(invalid_latlng); 
    return false;; 
}; 

구글의 출력은 다음과 같이 할 수있다 : 63.548552, -127.529297

는 지금이 내 jQuery를 스크립트입니다.

나는 Google에서 위도와 경도를 직접 복사하고 비디오와 함께 넣는 방법을 보여줍니다. 그러나 여하튼, 유효성 검사는 입력 된 위도와 경도가 잘못되었다고 계속 말합니다.

내 var latlngVal이 맞는지 틀린 지 알고 싶습니다.

그리고 나는이 스크립트를하고있는 중이 야, 그리고 ... 중 하나가 작동하지 않는 것 :

var emailVal = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
var email = $("input#email").val(); 
var invalid_email = 'Please type a valid e-mail address'; 

// If e-mail address is not empty - validate 
if (!email == '') { 
    if(!emailVal.test(email)) { 

     // ERROR - customize 

     $('#error').html(invalid_email); 
     return false; 
    } 
}; 

여기서 문제는, 전자 메일 인 경우는 확인하지 않는 것 같습니다 것을 그냥 비어 있습니다. 그래서 여기 뭔가가 잘못 되었다면 알려주세요. 전자 메일을 입력하지 않으면 전자 메일의 유효성을 검사하고 싶지 않습니다.

답변

7

나는 코드에서 약간의 변경을 가했다.

나는 당신의 정규식을 변경 : 그것은 180.XXXXXX90.XXXXXX 및 LNG -180.XXXXXX에 위도 -90.XXXXXX valids

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

예 : -85.123456,-100.123456

그리고 이메일이 비어있는 경우 확인 :

if (email.length !== 0) { 
,210

DEMOhttp://jsfiddle.net/nRha8/2/

+0

당신은 바로 사람이었다 .. : D 덕분에 많은 .. – Dimser

+0

@void : 코드를 말한다 "7.71200639972073580.6446103515625"이 거짓 위도와 긴! – Gowri

+0

@Philip Jens Bramsted가 여기에 작업 코드를 남길 수 있습니까? 대답으로 표시된 하나의 u가 모든 유효한 입력에 대해 유효하지 않습니다. –

관련 문제