Шаблон регулярного выражения, который содержит число от 0 до 99, а также допускает до 2-значной десятичной точки

Для углового приложения Нам нужна проверка, так как пользователь может вводить от 0 до 99, а также может вводить до 2-значных десятичных знаков.

Например,

  • 0 -> пройти

  • 0.1 -> Пройдено

  • 1.12 -> пройти

  • 12.12 -> Пройти

  • 100 -> Ошибка

  • 19.111 -> Ошибка

  • 1. -> Ошибка

^[0-9]+([.][0-9]{1,2})?$ этот шаблон работает для других случаев, кроме case (100 -> Fail)

для этого я попробовал что-то вроде шаблона ^([0-9]{1,2})+([.][0-9]{1,2})?$, но он не работает должным образом.

Пожалуйста, предложите шаблон, который охватывает все случаи.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
74
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

/^(?:99|\d{1,2})(?:\.\d{1,2})?$/

  • ^ - начало строки
  • (?:99|\d{1,2}) - группа без захвата, 0-99
  • (?:.\d{1,2})? - необязательная незахватывающая группа (.# или .##)
  • $ - конец строки

Так и должно быть, пожалуйста, проверьте это дальше.

Я пытался поставить шаблон типа Validators.pattern('^(?:99|\d{1,2})(?:\.\d{1,2})?$'), но ничего не работает, я даю 11.11,1, 1.11, но во всех случаях форма не будет действительной. Дайте мне знать, если я сделал какие-либо ошибки

M123 17.04.2023 06:32

Я считаю, что регулярное выражение должно работать. regex101.com/r/qGy9BA/1 Возможно что-то с Validators.pattern или вашей формой.

Sameshostee 17.04.2023 08:37

Вы можете пойти с чем-то вроде этого

/^(?:[1-9][0-9]?|0)(?:\.[0-9]{1,2})?$/

Вот как это работает:

  • ^ соответствует началу строки.
  • (?:[1-9][0-9]?|0) соответствует любому числу от 0 до 99
  • (?:.[0-9]{1,2})? соответствует до двух цифр после запятой
  • $ соответствует концу строки

Это не будет соответствовать 09

Validators.pattern('^(?:[1-9][0-9]?|0)(?:\.[0-9]{1,2})?$') Этот шаблон не работает, когда я дайте 100 или что-то 3-значное значение, кроме этого, оно работает нормально. Дайте мне знать, если я что-то пропустил

M123 17.04.2023 06:39

что значит не работает. Протестировано с 100, 222, 999 и некоторыми другими трехзначными числами, и оно не выбирает ни одно из них.

wnvko 17.04.2023 17:26

Возможно, что-то не так с Validators.pattern()

M123 18.04.2023 07:45
Ответ принят как подходящий

Сделал приведенный ниже шаблон с помощью ответов wnvko и Sameshostee, он работает правильно с этим Validators.pattern('...').

Спасибо @wnvko и @Sameshostee за вашу помощь.

^(?:99|[0-9]{1,2})([.][0-9]{1,2})?$

имейте в виду, что это также будет соответствовать двузначному числу, начинающемуся с нуля, например, 01, 02 и так далее!

wnvko 18.04.2023 13:16

Другие вопросы по теме