使用正则表达式验证纬度和经度坐标,然后显示错误

Rya*_*yan 6 javascript regex validation

如何使用正则表达式验证这些文本字段的纬度和经度并显示错误消息?

 <div class="form_style">
    <fieldset>
      <label for="contentText" class="fixedwidth">Name:</label>
      <input type="text" name="content_txt" id="contentText" class="inputtext" ><br/> 
    </fieldset>
    <fieldset>
      <label for="address" class="fixedwidth">Address:</label>
       <input type="text" id="address"class="inputtext" /><br/>
    </fieldset>
    <fieldset>
       <label for="lat" class="fixedwidth">Lat:</label>
     <input type="text" id="lat"class="inputtext" /><br/>
    </fieldset>
    <fieldset>
      <label for="lng" class="fixedwidth">Lng:</label>
     <input type="text" name="lng" id="lng"class="inputtext" /><br/>
    </fieldset>
    <fieldset>
      <label for="type" class="fixedwidth">Type:</label>
     <input type="text" id="type"class="inputtext" /><br/>
    </fieldset>
    <button id="FormSubmit">Add Marker</button>
</div>
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 19

<script type="text/javascript">  

var latitude = document.getElementById(lat).value;
var longitude = document.getElementById(lng).value;

var reg = new RegExp("^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}");

if( reg.exec(latitude) ) {
 //do nothing
} else {
 //error
}

if( reg.exec(longitude) ) {
 //do nothing
} else {
 //error
}

</script>
Run Code Online (Sandbox Code Playgroud)

  • 你是对的!我只使用了提供的一个@Kelv。显然类似的东西应该起作用:^(\-?\ d +(\。\ d +)?),\ s *(\-?\ d +(\。\ d +)?)$ [link](http:// stackoverflow .com / questions / 3518504 / regular-expression-for-matching-latitude-longitude-coordinates)没有尝试过 (2认同)
  • 我在我的代码中使用过,但它总是进入 javascript 的 else 条件。意味着它拒绝我的任何输入。 (2认同)

Mos*_*sho 12

随意在这里测试你的正则表达式:

^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,6}
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

在这种情况下,正则表达式将匹配一个负数或正数的数字(1个数字排除'0'和'0')或(一个或两个数字,第一个除9以外,都排除'0'),后跟一个小数点和最多6个其他数字.如果那就是你需要的,那么是的,这会有效.如果您需要不同的格式,请将其发布在评论中,我会尝试使用正确的正则表达式.

谷歌搜索"正则表达式"应该为您提供所需的所有信息.

如果您只需要-90到90之间的数字(或-180和180),您可以这样做:

if (typeof num === 'number' && num <= 90 && num >= -90)
    //valid
else
    //invalid
Run Code Online (Sandbox Code Playgroud)

如果你需要像°(度)或罗盘方向这样的符号,那么正则表达式可能是有益的.

以下是几种格式的评论:

http://www.geomidpoint.com/latlon.html