首页 > 解决方案 > 不要让小数点在输入值内重复一次以上

问题描述

我有一个不包括十进制数字的输入值,但问题是小数点或句点在输入值中重复多次,例如 1.2.3 而不是这个 1.23 谢谢。

           let input = document.querySelectorAll("input")

              let arr = []

           function period_noRepeat(x){
              const result = []
             const input = Array.isArray(x)? x: x.split('')

             for(let i = 0; i < input.length; ++i){
             if(input[i] == input[i + 1] && input[i] != 1 * input[i]) continue
           result.push(input[i])
             }

            return result;
            }

            const regex = /[^0-9\.]/
           input.forEach(function(item){
              item.addEventListener("input",function(e){

              item.value = item.value.replace(regex,"")

             arr = item.value.split("")


             item.value = period_noRepeat(arr).join("")




         })



        })
                <input type="text" class="dividend" >
               <input type="text" class="divisor" dir = "rtl">

标签: javascripthtmlregex

解决方案


尝试使用这个:

^-?[0-9]\d*(\.\d+)?$

(\.\d+)?将确保您的小数部分只会重复一次。


推荐阅读