REGEX процент 2 десятичный с + и минус значение

Это мое регулярное выражение для проверки процента с 2 десятичными до 100

^-?(100([.]0{1,2})?)$|(^\d{1,2}([.]\d{1,2})?)

но работает только в 99.16 и не как -99.16

Как разрешить также минус процент?

2 ответа

Решение

Вы только что пропустили ^-? во втором варианте

^-?(100([.]0{1,2})?)$|(^-?\d{1,2}([.]\d{1,2})?)

У вас есть две альтернативы:

  • особый случай 100 процентов
  • стандартный случай 0..99 процентов

обе альтернативы могут иметь знак минус (-):

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

в качестве замечания, вы, вероятно, хотите [0-9] при сопоставлении цифр ни один символ не рассматривается как цифра '\d' скажем, персидские цифры ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷

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