如何在jQuery中验证经度和纬度以及电子邮件地址

Dim*_*ser 3 email jquery latitude-longitude

我正在创建纬度和经度的验证.

现在这是我的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;;
};
Run Code Online (Sandbox Code Playgroud)

Google的输出可以是这样的:63.548552,-127.529297.

我正在向他们展示如何直接从谷歌复制纬度和经度并将其放入视频中.但不知何故,验证仍然表明输入的纬度和经度是错误的.

我想知道我的var latlngVal是正确还是错误.

然后我也在做这个脚本,它似乎也不起作用..:

var emailVal = /^([\w-\.]+@([\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;
    }
};
Run Code Online (Sandbox Code Playgroud)

这里的问题只是它似乎没有检查电子邮件是否为空,所以请告诉我这里的东西是否也是错误的.如果他们没有输入电子邮件,我不想验证电子邮件.

小智 7

我冒昧地在代码中进行了一些更改.

我将您的RegEx更改为:

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

它valids纬度-90.XXXXXX90.XXXXXX和lng -180.XXXXXX180.XXXXXX

例: -85.123456,-100.123456

并检查电子邮件是否为空:

if (email.length !== 0) {
Run Code Online (Sandbox Code Playgroud)

演示 http://jsfiddle.net/nRha8/2/

  • @AnishKarunakaran您可以将RegEx更改为以下:`/ ^ - ?([0-8]?[0-9] | 90)\.[0-9] {1,6},[""]? - ? ((1?[0-7]?| [0-9]?)[0-9] | 180)\.[0-9] {1,6} $ /`,它应该支持逗号之后的空格没有. (2认同)