Написание регулярного выражения для input [type=range]

217
26 июня 2018, 11:20

Написание сложного регулярного выражения, которое позволяет вводить только те значения, которые есть в input [type=range]

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

Цель: позволять в input вводить только ТЕ значения, которые есть у input[type=range]. Все бы ничего, но должны поддерживаться и натуральные и дробные числа (включая отрицательные – то есть со знаком - перед числом).

Вот есть несколько полей и ползунков:

<div class="pinned-default"> 
  <span>Диапазон – от -25 до 25. Ход ползунка – 0.1</span> 
  <br/> 
  <input type="text" class="range-value-input" /> 
  <br/> 
  <input type="range" min="-25" max="25" step="0.1" /> 
</div> 
<div class="pinned-default"> 
  <span>Диапазон – от 60 до 450. Ход ползунка – 1</span> 
  <br/> 
  <input type="text" class="range-value-input" /> 
  <br/> 
  <input type="range" min="60" max="450" step="1" /> 
</div> 
<div class="pinned-default"> 
  <span>Диапазон – от 2000 до 20000. Ход ползунка – 50</span> 
  <br/> 
  <input type="text" class="range-value-input" /> 
  <br/> 
  <input type="range" min="2000" max="20000" step="50" /> 
</div>

Answer 1

Зачем это регулярки?
val > min && val < max && (val / step) % 1 === 0.

Answer 2

Вижу что появился хороший ответ, но если Ваша цель - потренировать регулярку, то вот моя идея: -?(((2[0-4])|([0-1]\d))(.\d+)?|(25)) Для диапазона от -25 до 25 включительно.

но для каждого диапазона придется чуток модифицировать.

В чем суть регулярки. Минус может быть может не быть - не влияет никак ни на что далее. Если первая цифра - 2, то вторая может быть от 0 до 5, для соблюдения диапазона. Если первая цифра 0 или 1, то вторая может быть любой, так как за 25 все равно не выйдем. Дальше, если целое число в пределе от -24 до 24, то дробная часть может быть, а может и не быть. Если есть - состоит из любых значений, все равно за диапазон не выйдем. Либо 25.

READ ALSO
Задача с сортировкой массива JavaScript

Задача с сортировкой массива JavaScript

Задача: Найти в массиве нули, удалить с данного индекса и добавить в конец массива

224
Cloud functions in Firebase for Android. В какой IDE писать функции?

Cloud functions in Firebase for Android. В какой IDE писать функции?

Дилетантский вопросВпервые сталкиваюсь с JavaScript

210