正则验证经纬度
// 要求还是比较严格的:
// 度、分、秒三个节都要有;
// 每节的数字不能以 0 开头(比如不能写 08度,而要写 8 度);
// 秒的数字可以是小数,小数点后最多有两位数字;
// 分隔三个节的标志符可以是空格、中横线、逗号、分号、°′"或者度分秒;
// 取值范围,经度为 0度0分0秒 至 180度0分0秒;纬度为 0度0分0秒 至 90度0分0秒。
js:
//校验经度是否符合规范
var patternLongitude = /^((\d|[1-9]\d|1[0-7]\d)[°](\d|[0-5]\d)[′](\d|[0-5]\d)(\.\d{1,6})?[\″]$)|(180[°]0[′]0[\″]$)/;
var lng = $("#longitude").val();
if (lng != "") {
if (!patternLongitude.test(lng)) {
msgError('经度整数部分为0-180,格式: 0°0′0.00″!');
return false;
}
}
//校验纬度是否符合规范
var patternLatitude = /^((\d|[1-8]\d)[°](\d|[0-5]\d)[′](\d|[0-5]\d)(\.\d{1,6})?[\″]$)|(90[°]0[′]0[\″]$)/;
var lat = $("#latitude").val();
if (lat != "") {
if (!patternLatitude.test(lat)) {
msgError('纬度整数部分为0-90,格式: 0°0′0.00″!');
return false;
}
}
Java后台:
request.getTrimQuietly("latitude", "((\\d|[1-8]\\d)°(\\d|[0-5]\\d)′(\\d|[0-5]\\d)(\\.\\d{1,6})?\\″)|(90[°]0[′]0\\″)");
request.getTrimQuietly("longitude", "((\\d|[1-9]\\d|1[0-7]\\d)°(\\d|[0-5]\\d)′(\\d|[0-5]\\d)(\\.\\d{1,6})?\\″)|(180°0′0\\″)");