Jquery 从字符串中查找并删除不兼容的字符

Jquery 从字符串中查找并删除不兼容的字符,jquery,forms,validation,Jquery,Forms,Validation,我有一个表格,我需要验证经度和纬度场 下面的代码可以很好地捕获按键。然而,在focusout部分,有两个问题我无法解决: 1/应将字段中的“不允许”字符替换为“”,但这不会发生 2/警报从未触发 代码如下所示: var allowedLongLat = "0123456789.-"; $("#latitude").keypress( function(e) { var chr = String.fromCharCode(e.which); if

我有一个表格,我需要验证经度和纬度场

下面的代码可以很好地捕获按键。然而,在
focusout
部分,有两个问题我无法解决:

1/应将字段中的“不允许”字符替换为“”,但这不会发生

2/警报从未触发

代码如下所示:

    var allowedLongLat = "0123456789.-";

    $("#latitude").keypress( function(e) {
        var chr = String.fromCharCode(e.which);
        if (allowedLongLat.indexOf(chr) < 0)
        {
            alert("The character "+chr+" is not allowed in this field!");
            return false;
        }
    });
    $(document).on("focusout","#latitude",function(){
        var str = $("#latitude").val();
        var wrongchars = [];
        var wrongalert = "";
        for (var i = 0, len = str.length; i < len; i++) {
            if (allowedLongLat.indexOf(str[i]) < 0)
            {
                wrongchars.push(str[i]);
            }
        }
        jQuery.each(wrongchars , function(index, value){
             $("#latitude").val( str.replace(\'/\'+value+\'/g\', \'\') );
             wrongalert += value;
        });                 
        if ( wrongalert.lenght > 1 )
        {
            alert("The characters "+wrongalert+" are not allowed in this field!");
        }
    });
var allowedLongLat=“0123456789.-”;
$(“#纬度”)。按键(功能(e){
var chr=String.fromCharCode(e.which);
if(允许长时间索引(chr)<0)
{
警报(“此字段中不允许使用字符“+chr+”);
返回false;
}
});
$(文档).on(“focusout”,“纬度”,函数(){
var str=$(“#纬度”).val();
var-errochars=[];
var错误警报=”;
对于(变量i=0,len=str.length;i1)
{
警报(“此字段中不允许使用字符“+ErrorAlert+”);
}
});

你知道我遗漏了什么吗?

在代码中发现了一些错误

$("#latitude").val( str.replace(\'/\'+value+\'/g\', \'\') );
有一些打字错误

if ( wrongalert.lenght > 1 )
输入错误,应该是长度

我做了一个三明治

var allowedLongLat = "0123456789.-";

$(document).on("focusout","#latitude",function(){
    var str = $("#latitude").val();
    var wrongchars = [];
    var wrongalert = "";
    for (var i = 0, len = str.length; i < len; i++) {
        if (allowedLongLat.indexOf(str[i]) < 0)
        {
            wrongchars.push(str[i]);
        }
    }
    //console.log(wrongchars);
    jQuery.each(wrongchars , function(index, value){
        console.log(value);
         $("#latitude").val( $("#latitude").val().replace(value, '') ); // I simplified here
         wrongalert += value;
    });     
    if ( wrongalert.length > 1 )// here was typo error
    {
        alert("The characters "+wrongalert+" are not allowed in this field!");
    }
});
var allowedLongLat=“0123456789.-”;
$(文档).on(“focusout”,“纬度”,函数(){
var str=$(“#纬度”).val();
var-errochars=[];
var错误警报=”;
对于(变量i=0,len=str.length;i1)//这里有输入错误
{
警报(“此字段中不允许使用字符“+ErrorAlert+”);
}
});

可以肯定的是,我们说的是十进制度数,对吗?例如:-4.32135123,15.5123123,是吗?是,对于谷歌地图coords