input限制输入经纬度和java后台验证经纬度

使用正则表达式验证经纬度的范围

经度范围:-180~180

纬度范围:-90~90

正则表达式:
正则来源:https://blog.csdn.net/dapyandxpy/article/details/79303509
经度:

^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$

纬度:

^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$

现在经纬度范围只支持小数点后六位,超出六位就不通过,通过修改正则表达式中的{0,6}中的6来确定小数点后保留几位。也可以通过直接修改{0,6}为+不限制小数点后几位
如:^(\-|\+)?([0-8]?\d{1}\.\d+|90\.0+|[0-8]?\d{1}|90)$(这个正则就随便测试了一些经纬度,如果不正确,欢迎大家指正)。
在线测试正则:http://tool.oschina.net/regex/

input输入框

//经度
<input type="text" onkeyup="if(!/^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/.test(this.value)){alert('经度范围:-180~180(只支持保留小数点后六位)');this.value='';}" />

//纬度
<input type="text" onkeyup="if(!/^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/.test(this.value)){alert('纬度范围:-90~90(只支持保留小数点后六位)');this.value='';}" />

java后台正则验证方法

package com.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil {
	//经度范围:-180~180(只支持保留小数点后六位)
	public static String lonreg  = "^(\\-|\\+)?(((\\d|[1-9]\\d|1[0-7]\\d|0{1,3})\\.\\d{0,6})|(\\d|[1-9]\\d|1[0-7]\\d|0{1,3})|180\\.0{0,6}|180)$";
	//纬度范围:-90~90(只支持保留小数点后六位)
	public static String latreg  = "^(\\-|\\+)?([0-8]?\\d{1}\\.\\d{0,6}|90\\.0{0,6}|[0-8]?\\d{1}|90)$";

	/**
	 * 判断是否与给定字符串样式匹配
	 * 
	 * @param str 字符串
	 * @param pattern 正则表达式样式
	 * @return 是否匹配 是true,否false
	 */
	public static boolean isMatch(String str, String pattern) {
		Pattern pattern_hand = Pattern.compile(pattern);
		Matcher matcher_hand = pattern_hand.matcher(str);
		boolean b = matcher_hand.matches();
		return b;
	}
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页