Javascript: проверка числа, содержащего только десятичные цифры, при нажатии клавиши

#javascript

#javascript

Вопрос:

Как мы можем проверить введенное число, которое принимает число только с двумя десятичными цифрами? Например, предположим, что если я введу «12345.655», оно должно перестать принимать число после «12345.65».

И если я ввожу числа перед точкой, оно должно принимать числа.

Пожалуйста, предложите способ.

Спасибо.

Комментарии:

1. «если я ввожу числа перед точкой, оно должно принимать числа» — что вы имеете в виду?

2. @nicael: Давайте s say "1234.12" is already displayed, then i отредактируем его с помощью «12345.12». Это также должно сработать.

Ответ №1:

допустим, что ваш элемент ввода el , тогда

 el.onchange = function(){

    if( parseFloat( el.value )*1000 % 10 != 0 ){ el.value = el.value.slice( 0, -1 ) }

}
  

Ответ №2:

Это должно сработать для вас:-

HTML

 <input type="text" id="number" onkeyup="fixDecimal()"/>
  

Javascript

 function fixDecimal(){
    var value = document.getElementById('number').value;
    if(value.split('.')[1] amp;amp; value.split('.')[1].length > 2){
        var number = parseFloat(value);
        document.getElementById('number').value = number.toFixed(2);    
    }
}
  

Ответ №3:

Предположим, что у вас есть ввод, подобный этому:

 <input type="text" onKeyUp="this.value=check(this.value)">
  

Вы можете использовать этот javascript:

 function check(num){

    num=num.replace(/([A-Za-z])/g,"");
    if(String(num).split(".").length>1amp;amp;String(num).split(".")[1].length>2){
        num=String(num).slice(0, 2-String(num).split(".")[1].length);
    }
    return num;
}
  

JSFIDDLE

Комментарии:

1. @user3272854 работает. Посмотрите на скрипку.

2. @niceal: Пожалуйста, проверьте, что это не работает, введите «1223», затем удалите первые два с 3, чтобы получилось «1323»

3. @user3272854 Итак? Что происходит? Что-то странное? Все работает.