javascript删除数字输入中的重复小数点

javascript删除数字输入中的重复小数点,javascript,regex,replace,Javascript,Regex,Replace,需要防止人们意外地在一组type=number输入字段中键入2位小数,其中step=any。我试过以下方法,但没有效果 $(function(){ $('input[type=number]').keyup(function(){ var newval=$(this).val().split('..').join('.'); $(this).val(newval); }); }); $(function(){ $('input[type

需要防止人们意外地在一组type=number输入字段中键入2位小数,其中step=any。我试过以下方法,但没有效果

$(function(){
    $('input[type=number]').keyup(function(){
        var newval=$(this).val().split('..').join('.');
        $(this).val(newval);
    });
});


$(function(){
    $('input[type=number]').keyup(function(){
        var newval=$(this).val().replace('..','.');
        $(this).val(newval);
    });
});

$(function(){
    $('input[type=number]').keyup(function(){
        var newval=$(this).val().replace(/\.\./g,'.');
        $(this).val(newval);
    });
});
所有这些只是清空值,或者什么也不做,重复的小数保留下来


谢谢大家的输入,我最后做的是在键盘上,将attr“type”更改为“text”,运行replace(),然后将其更改回“number”

大概是这样的吧?使用类型“text”而不是“number”

let last='';
document.getElementById('me')。addEventListener('input',(e)=>{
常量匹配=e.target.value.match(/[-+]?\d*\.?\d*/);
如果(匹配| | e.target.value==“”){
last=匹配?匹配[0]:“”;
}
e、 target.value=last;
},假)

一些您期望的示例输入/输出将有助于理解您的问题。因此,如果我的销售人员输入“1..35”而不是“1.35”,则需要删除重复的小数。您的代码末尾有一个
,而不是
问题在于输入的是
“type=number”
,值为1和1。都是1。如果要执行类似正则表达式的操作,则需要使用
“type=text”
(在正则表达式中只能输入数字)。对于
type=number
,浏览器会将输入值转换为数字。如果键入的内容不是数字,则值是空字符串,而不是他们键入的内容。似乎没有办法获得实际的输入。