Как составить регулярное выражение для проверки числа в диапазоне от 0,001 до 10 js?

Нужно составить регулярное выражение чтобы оно было как float, так и int типа в диапазоне от 0.001 до 10


Ответы (2 шт):

Автор решения: UModeL

Возможно, что подойдёт следующее регулярное выражение:

let rExp = /^(10|\d(\.\d{0,2}[1-9])?)$/;
let aNum = [0.001, 0.01, 0.1, 1, 10, 10.001, 10.01, 0.0001, 7.53, 11, 9.001];

aNum.forEach(n => {
  tab.insertAdjacentHTML('beforeend',`<tr><td>${n}</td><td>${rExp.test(n.toString())}</td><td>${(n <= 10 && n >= 0.001)}</td></tr>`);
});
<table id="tab" border=2><tr><th>n</th><th>RegExp</th><th>10 ⩾ n ⩾ 0.001</th></tr></table>

→ Ссылка
Автор решения: Aleksandr Belous

Вам не нужны регулярки. Любое число преобразуйте во float и сравнивайте.

const isValid = (num) => {
  const target = parseFloat(num);
  return target >= 0.001 && target <= 10;
};

console.log(isValid(0.01)); // true
console.log(isValid(0.001)); // true
console.log(isValid(10)); // true
console.log(isValid(5)); // true
console.log(isValid(0)); // false
console.log(isValid(10.00001)); // false
→ Ссылка