Java正则表达式 经纬度合法性
经度: -180.0~+180.0(整数部分为0~180,必须输入1到5位小数)
正则表达式:
/^[\\-\\+]?(0?\\d{1,2}\\.\\d{1,5}|1[0-7]?\\d{1}\\.\\d{1,5}|180\\.0{1,5})$/
纬度: -90.0~+90.0(整数部分为0~90,必须输入1到5位小数)
正则表达式:
/^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,5}|90\\.0{1,5})$/
遇到了一个这样的需求,前端传来list集合,后台校验每个对象的经纬度是否合法,合法的就标记0,不合法的就标记2,然后前端拿到后台传过去的json数据进行渲染。
代码如下:
package com.test;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.regex.Pattern;
/**
* @author riemann
* @date 2020/01/03 21:45
*/
public class VerifyLongAndLat {
private static final String LONGITUDE = \”/^[\\\\-\\\\+]?(0?\\\\d{1,2}\\\\.\\\\d{1,5}|1[0-7]?\\\\d{1}\\\\.\\\\d{1,5}|180\\\\.0{1,5})$/\”;
private static final String LATITUDE = \”/^[\\\\-\\\\+]?(0?\\\\d{1,2}\\\\.\\\\d{1,5}|1[0-7]?\\\\d{1}\\\\.\\\\d{1,5}|180\\\\.0{1,5})$/\”;
private JSONArray verifyLongAndLat(List<LocatorDataDetail> ldDetailList, JSONArray errorTypeArray) {
for (LocatorDataDetail dataDetail : ldDetailList) {
JSONObject errorTypeObject = new JSONObject();
Double longitude = dataDetail.getLongitude();
Double latitude = dataDetail.getLatitude();
boolean longPattern = Pattern.matches(LONGITUDE, longitude.toString());
boolean latPattern = Pattern.matches(LATITUDE, latitude.toString());
if (longPattern || latPattern) {
errorTypeObject.put(\”coordinate\”,\”0\”);
} else {
errorTypeObject.put(\”coordinate\”,\”2\”);
}
errorTypeArray.add(errorTypeObject);
}
return errorTypeArray;
}
}
Java 经纬度正则
6位小数经纬度正则匹配
1.纯粹做项目一些记录
2.适用匹配经度(-180.000000至180.000000)
2.适用匹配纬度(-90.000000至90.000000)
//经度
public static final String LNG_PATTERN = \”^[\\\\-\\\\+]?(0(\\\\.\\\\d{1,6})?|([1-9](\\\\d)?)(\\\\.\\\\d{1,6})?|1[0-7]\\\\d{1}(\\\\.\\\\d{1,6})?|180(\\\\.0{1,6})?)$\”;
//纬度
public static final String LAT_PATTERN = \”^[\\\\-\\\\+]?((0|([1-8]\\\\d?))(\\\\.\\\\d{1,6})?|90(\\\\.0{1,6})?)$\”;
public static void main(String[] args) {
Pattern p = Pattern.compile(LNG_PATTERN);
System.out.println(p.matcher(\”181\”).matches());
System.out.println(p.matcher(\”180.001\”).matches());
System.out.println(p.matcher(\”180.0000\”).matches());
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。
您可能感兴趣的文章:
- Python利用Redis计算经纬度距离案例
- redis轻松处理经纬度坐标点数据的实现方法
- Java经纬度小数与度分秒相互转换工具类示例详解
- Java通过经纬度坐标获取两个点之间的直线距离的示例
- javaweb实现百度GPS定位接口(经纬度)
- java 根据经纬度获取地址实现代码
- Java将GeoHash转化为对应的经纬度坐标实例代码
- Java编程获取经纬度之间距离的方法
- 地址到经纬度坐标转化的JAVA代码
- Java中如何使用RedisGEO测算经纬度距离