如何匹配用逗号分隔的经纬度113.19852144995117,28.85057467480469?

经度

/^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,7})|(\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)$/

对上面的经度和纬度进行分别单独匹配都能精确的匹配我输入的结果

但是我我使用

onkeyup= "if(!/^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,7})|(\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)$/.test(this.value)){alert('只能输入数字,小数点不能超过15位');this.value='';}"

拼接他们进行验证一直出错
只要一输入就
图片说明

如何拼接可以让他们匹配上面的数值?
图片说明

在input输入框中可以按格式匹配输入

啊终于解决啦 解决方案

  function coordinateRegex(str){  //传入的前端id 这里需要前端写死
        reg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,14})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180),(\-|\+)?([0-8]?\d{1}\.\d{0,14}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
id = "#"+str;
        if(!reg.test($(id).val()) && $(id).val()!=null){
            alert("数据格式错误")
        }
    }

感谢大佬 franzhong. 一直在帮我解决问题 谢谢!!!

var tt = "113.19852144995117,28.85057467480469";
var rep = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,14})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180),(\-|\+)?([0-8]?\d{1}\.\d{0,14}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
var res = rep.test(tt)
console.log("got it!"+res);

//输出为:got it!true

正则匹配是严格的,包括中间的英文逗号改为中文逗号、前后空格等都会造成匹配失败。你再试一下,先把上面变量tt的内容复制进你的输入框进行匹配