JavaScript Google Map 坐标验证
JavaScript Google Map Coordinate Validation
>我有一个表单,您可以在其中选择地图上的一个点,它会填充纬度和纬度文本框,或者您可以自己输入坐标。
我需要添加验证以确保用户输入有效范围,但我不确定我是否有正确的正则表达式。 这是我使用的方法:
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),所以使用单个正则表达式并不是真的行得通。您可能还想检查纬度是否可以绘制在地图上 - 这意味着它需要大致位于 (-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;
}
}
您的正则表达式看起来不正确。尝试:
var regex_coords = /'-?[0-9]+['.]{0,1}[0-9]*/;
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- 如何在d3.js中返回路径的y坐标
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- 验证Javascript中的Textarea
- 在谷歌地图上获取事件的x,y坐标
- JavaScript Google Map 坐标验证
- 使用正则表达式验证 GPS 坐标