Разрешен ввод в input только одной точки. Пытаюсь удалять из числа лишние точки, если их вводят.
Код:
document.querySelector('.inputTest').addEventListener('keyup', function() {
// Регулярные выражения:
var re = /,/g
var re_2 = /\./g
// Для замены запятой на точку
if(this.value.match(re)){
this.value = this.value.replace(re, '.')
}
// Если кол-во точек превысило более 1 шт.
if(this.value.match(re_2) && this.value.match(re_2).length >= 2){
this.value = this.value.substr(0, this.value.lastIndexOf('.'))
}
})
* {
box-sizing: border-box;
}
.inputTest {
width: 100%;
padding: 10px;
}
<input class="inputTest" type="text" value="" placeholder="Число" />
При вводе одной точки всё хорошо, если ввести вторую точку (или более) за уже имеющейся точкой в конце числа - успешно обрезаются лишние точки и остается только одна. Пример:
// 555. => начальное число; 555... => после ввода лишних точек => 555. => Итог
Проблема заключается в следующем: если точка уже присутствует в числе и дополнительно ввести еще одну точку (или более) до имеющейся точки - обрезается всё справа от неё. Пример:
// 555.00 => начальное число; 55.5.00 => после ввода лишней точки => 55.5 => Итог
Необходимо, чтобы оставалась только одна точка в числе, а справа от введенной лишней точки ничего не удалялось - только лишняя точка удалялась, ну или лишние точки, если их введут много. При вводе запятой, пожалуйста, учтите. Пример:
// 555.00 => начальное число; 55.5.00 => после ввода лишней точки => 555.00 => Итог
// 555.00 => начальное число; 55...5.00 => после ввода лишних точек => 555.00 => Итог
// 555.00 => начальное число; 55,5.00 => после ввода запятой => 555.00 => Итог
Пытался сделать так:
this.value = this.value.replace(/\./g, '')
Вместо:
this.value = this.value.substr(0, this.value.lastIndexOf('.'))
Не работает.
P.S. Input у меня разрешает только ввод чисел, запятой и точки.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть приложение по выделению областей полигонами, пользователь может сохранять координаты в localStorage и по нажатию кнопки отрисовывать их снова
Как сделать анимацию? Надо прокрутить картинки 3 разаА затем остановить на выбранной
При нажатии на кнопку должен выводиться текст из нее в inputНичего подобного не нашла, как это реализовать?