Ввод в input только чисел. А также ввод не больше одной цифры после запятой.

Сегодня на работе столкнулся с интересной проблемой. Нужно разрешить вводить в текстовое поле только числа, в том числе не целые. Если число не целое, то вводить можно только одно число после запятой. Сделать ввод только чисел просто, достаточно одной регулярки, но вот чтоб можно было вводить число с запятой — такого я еще не делал. В принципе задача не сложная, но она мне показалась довольно интересной и я решил выложить ее решение. Не буду больше ни чего описывать, приведу просто код с комментариями.

<input type="text" onkeyUp="return proverka(this);" />
function proverka(input) {
    ch = input.value.replace(/[^\d,]/g, ''); //разрешаем вводить только числа и запятую
    pos = ch.indexOf(','); // проверяем, есть ли в строке запятая
    if(pos != -1){ // если запятая есть
        if((ch.length-pos)>2){ // проверяем, сколько знаков после запятой, если больше 1го то
            ch = ch.slice(0, -1); // удаляем лишнее
        }
    }
    input.value = ch; // приписываем в инпут новое значение
};
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*