Регулярно выражайте числа от 0 до 25 включительно, которые могут быть удвоены с точностью до 1 - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу использовать 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 включительно.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Это шаблон регулярного выражения, который я использовал бы здесь:

^(?:(?:[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.log('within range');
}
0 голосов
/ 18 апреля 2019

Для проверки правильности используйте операторы >= и <=. Чтобы выполнить требование регулярного выражения, просто добавьте выражение регулярного выражения для мусора.

let isMatch = number => {
  'must use regex'.match(/x/);
  return number >= 0 && number <= 25;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...