Калькулятор Регулярное выражение с десятичным числом и нормальным числом - PullRequest
0 голосов
/ 30 сентября 2019

В настоящее время у меня есть функция проверки с регулярным выражением, как показано ниже:

validateFormula(String value) {
    String pattern = (r'^\d+\.\d{1,2}$');
    RegExp regExp = new RegExp(pattern);
    if (value.length == 0) {
      return "Number cannot be empty";
    } else if (!regExp.hasMatch(value)) {
      return "Number not valid, always use decimal formaters. Ex: 1.0";
    }
    return null;
  }

Приведенный выше код выполняется для выполнения вычислений в простом приложении калькулятора, но только для входных чисел в виде десятичного числа с десятичным. Примеры 4.0 + 4.2 и т. Д. Как на картинке ниже:

enter image description here

Но когда я ввожу число вместо десятичного числа, оно нехочу быть посчитанным, потому что созданное мной регулярное выражение предназначено только для десятичных чисел.

enter image description here

Как, если я хочу посчитать, как показано ниже:

1.6 + 1
1.66 + 1.66
1.667 - 1.111
1 * 1
1.56 / 1.56

С максимум 3 цифрами после десятичной дроби

1 Ответ

0 голосов
/ 30 сентября 2019

В этом случае вы можете использовать это регулярное выражение:

^[+-]?\d+((\.\d{,3})|\d*)$

Чтобы разрешить положительные и отрицательные целые или десятичные числа, имеющие не более трех цифр после десятичной точки.

...