자바 정규 표현 식 은 경위도 의 합 법성 을 실현 합 니 다.

자바 정규 표현 식 경위도 합 법성
경도:-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;
    }
}
자바 경위도 정규
6 비트 소수 경위도 정규 일치
1.순 전 히 프로젝트 기록 하기
2.매 칭 경도 적용(-180.00000~180.00000)
2.위도 매 칭 적용(-90.000000~90.00000)

//  
    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());
    }
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기