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

标签 javascript regex replace

需要防止人们在 step=any 的一组 type=number 输入字段中意外输入 2 个小数位。我尝试了以下无济于事。

$(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);
    });
});

所有这些只是清空值,或者什么都不做,重复的小数点仍然存在。

https://jsfiddle.net/uLayjmkv/

最佳答案

也许是这样的?使用类型“文本”而不​​是“数字”

let last = '';

document.getElementById('me').addEventListener('input', (e) => {
  const match = e.target.value.match(/[-+]?\d*\.?\d*/);
  if (match || e.target.value === '') {
    last = match ? match[0] : '';
  }

  e.target.value = last;
}, false);
<input id="me" type="text" />

在 chrome 58 上似乎对我来说工作正常。不知道是否还有其他边缘情况。

关于javascript删除数字输入中的重复小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854629/

相关文章:

javascript - 如何使 jQuery.ready 中定义的函数在全局范围内可用?

javascript - Window.onload 作用域

ruby - 如何应用正则表达式 POSIX 类减法或等价物?

javascript - 如何全局替换字符串中的管道符号 "|"

c# - 正则表达式 : how to get words from a string (C#)

javascript - 如何多次替换同一个字符?

Javascript 滚动 Div 循环

javascript - 在 angular.js 应用程序中加载大量文件用于开发环境

java - 使用正则表达式在 html 中查找 url 时遇到问题?

Python 正则表达式 : why does this not work?