Десятичные или знаковые числа c в регулярных выражениях при проверке во флаттере - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь использовать проверку правильности регулярного выражения для проверки только десятичных значений или числовых значений со знаком c в приложении Flutter.

Допустимые значения:

  • 12.3
  • -12.33

Я использовал WhitelistingTextInputFormatter для ограничения пользовательских вводов. Пожалуйста, используйте код ниже:

TextFormField(
    key: AppKeys.emailField,
    keyboardType: TextInputType.emailAddress,
    controller: controller.emailTextController,
    inputFormatters: [
      WhitelistingTextInputFormatter(RegExp(r'[0-9-]\d*(\.\d+)?')),
    ],
    maxLength: 100,
    decoration: InputDecoration(
      labelText: Strings.emailPrompt,
      counterText: '',
      prefixIcon: Icon(Icons.email),
    ),
    //validator: Validator.validateEmail,
    onSaved: (String val) {
      //_email = val;
    },
  );

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

Любая помощь очень важна. Заранее спасибо.

1 Ответ

0 голосов
/ 09 апреля 2020

Проверьте со следующим форматом ввода:

WhitelistingTextInputFormatter(RegExp(r'(^\-?\d*\.?\d*)$')),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...