nepster-web
@nepster-web

Как написать регулярное выражение для проверки следующих примеров?

Подскажите, пожалуйста, как написать регулярное выражение для проверки следующих примеров:

10.23 = true
232.65 = true
432.434 = false
342 = true
.423 = false

Тоесть как то так:
Любое целое число = true.
Число с плавающей точкой (или запятой), после плавающего знака 2 символа = true.
Все остальное false.

Я начал как то так:
preg_match('/^\d([.,])\d{1,2}$/si', '3232,43')

И всегда попадаю в 0.

Подскажите пожалуйста в чем проблема?
  • Вопрос задан
  • 3856 просмотров
Решения вопроса 3
dmeroff
@dmeroff
Попробуйте такую регулярку:
preg_match('/^\d+[,.]?\d{1,2}$/', '3232,43')
Ответ написан
Комментировать
@xmeoff
preg_match('/^\d+(?:[.,]\d{1,2}|)$/', '3232,43')
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ваша регулярка сейчас - строго одна цифра с начала строки, затем обязательная запятая и обязательно одна или две цифры. Если смотреть по условию, то будет
/^\d+(?:[.,]\d{2})?$/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@cmx
Также советовал бы добавить в закладки инструмент для удобного тестирования регулярных выражений, крайне рекомендую: regex101.com
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы