2021_fc 2020-04-07 12:10 采纳率: 0%
浏览 389

如何匹配用逗号分隔的经纬度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. 一直在帮我解决问题 谢谢!!!

  • 写回答

1条回答 默认 最新

  • franzhong 2020-04-07 22:32
    关注
    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的内容复制进你的输入框进行匹配

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作