Java正则表达式实现经纬度的合法性操作

2023-12-05 0 753

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测算经纬度距离

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 正则表达式 Java正则表达式实现经纬度的合法性操作 https://www.u-9.cn/biancheng/zhengze/95053.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务