JavaScript 谷歌地图坐标验证

标签 javascript google-maps

我有一个表单,您可以在其中选择 map 上的一个点,它会填充纬度和经度文本框,或者您可以自己输入坐标。

我需要添加验证以确保用户输入有效范围,但我不确定我是否有正确的正则表达式。这是我正在使用的方法:

var regex_coords = "[-]?[0-9]*[.]{0,1}[0-9]";

// ...

valid_coords: function (number) {
if (number.match(regex_coords) && !isNaN(Number(number))) {
    $("#btnSaveResort").removeAttr("disabled");
    return true;
} else {
    $("#btnSaveResort").attr("disabled", "disabled");
    return false;
}
},

无论我在文本框中输入什么,这个函数都会返回 false。

有什么更好的建议吗?

最佳答案

纬度和经度的范围不同:纬度为 (-90,90),经度为 (-180,180),因此使用单个正则表达式并不能真正发挥作用。您可能还想检查纬度是否可以绘制在 map 上——这意味着它需要大约位于 (-85,85) 范围内。或者您可能希望将范围限制为包含特定区域的边界矩形。

为什么不明确测试范围?

function inrange(min,number,max){
    if ( !isNaN(number) && (number >= min) && (number <= max) ){
        return true;
    } else {
        return false;
    };
}

然后您可以根据需要定制代码。据推测,如果纬度和经度都有效,您只想启用保存按钮。

valid_coords: function(number_lat,number_lng) {
    if (inrange(-90,number_lat,90) && inrange(-180,number_lng,180)) {
        $("#btnSaveResort").removeAttr("disabled");
        return true;
    }
    else {
        $("#btnSaveResort").attr("disabled","disabled");
        return false;
    }
}

关于JavaScript 谷歌地图坐标验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917867/

相关文章:

c# - 使用 Javascript 从 ASP.Net 调用 C# 方法并带参数

php - 通过调用 PHP 脚本从 Javascript 更新数据库

reactjs - Google-maps-react 折线根本不显示

javascript - 将 google 自动填充限制为邮政编码

google-maps - 在抖动中更新 map 的相对位置

javascript - 具有可破坏障碍物的星

javascript - 如何使用光谱颜色选择器隐藏某些颜色

javascript - 如何从不透明度暂停和恢复 fadeIn()?

谷歌地图上缺少 ios mylocationbutton

IOS 错误 : Google Maps does not load the map on iPhone