Я хочу использовать Regex для сопоставления чисел от 0 до 25 включительно, которые могут быть удвоены с точностью до 1.
Напр.- 2, 2.5, 23.0, 8, 24.3, 25
Я создал следующее регулярное выражение:
^(\\s*|0?[0-9]|[0-9]|1[0-9]|2[0-5])$
Но это работает только для чисел от 0 до 25 включительно.
Зачем это делать с регулярным выражением?
@ Бармар Легкий ответ. Так что я могу опубликовать и получить некоторые очки. Да!
@Barmar- Я использую schemaform.io, и для этого требуется регулярное выражение в качестве шаблона.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для проверки правильности используйте операторы >= и <=. Чтобы выполнить требование регулярного выражения, просто добавьте регулярное выражение мусора.
let isMatch = number => {
'must use regex'.match(/x/);
return number >= 0 && number <= 25;
};
Это шаблон регулярного выражения, который я бы использовал здесь:
^(?:(?:[0-9]|1[0-9]|2[0-4])(?:\.[0-9])?|25(?:\.0)?)$
Шаблон аналогичен тому, что вы использовали, за исключением того, что мы сопоставляем 2[0-4] только с любой одиночной десятичной точкой. Конечная точка 25 — это особый случай, который может принимать не более 25.0 для своего десятичного компонента.
Но в целом в JavaScript было бы проще просто разобрать текстовое число, а затем использовать неравенство для проверки диапазона. Например.
var number = '24.3'
if (number >= 0 && number <= 25.0) {
console.info('within range');
}
Возможный дубликат: stackoverflow.com/questions/308122/…