Как составить регулярное выражение для проверки числа в диапазоне от 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