使用javascript验证纬度

时间:2014-01-29 11:14:52

标签: javascript regex

如何使用javascript限制输入纬度的输入字段?

以下是我尝试过的一段代码。

$('#latitude').on( "keypress",function (e) {
        var keypress = e.keyCode || e.which || e.charCode; 
        var key = String.fromCharCode(keypress);
        var regEx = /^[-|+]?[0-9]{0,2}(.[0-9]{0,6})?$/;

        var txt = $(this).val() + key;
        if (!regEx.test(txt)) {
            if(keypress != 8){
                e.preventDefault();
            }else{
            }
        }else{

        }
    });

在这里,我发现了可以在第一个位置输入特殊字符的问题。请帮帮我......

3 个答案:

答案 0 :(得分:0)

在验证中还包括以下行:

if (!regEx.test(txt) && !isNaN(txt)) { .... }

答案 1 :(得分:0)

试试这个,同时注意NS也可以包含在纬度中

"^(?:90|[0-8][0-9]):[0-5][0-9]:[0-5][0-9][NS]$"

答案 2 :(得分:0)

此问题已在此处Regular expression for matching latitude/longitude coordinates?得到解答。
它表明以下正则表达式:
^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$