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

7 篇文章 0 订阅
1 篇文章 0 订阅

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

经度范围:-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;
	}
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值