Flutter - Regex в TextFormField - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь разрешить только цифры и точки в текстовом поле формы.

У меня есть что-то подобное

WhitelistingTextInputFormatter(RegExp("\d*[.]\d*"))

Но не работает, так что: кто-нибудь имеет представление о том, какможно только разрешить цифры и точки?

1 Ответ

1 голос
/ 31 мая 2019

WhitelistingTextInputFormatter "создает модуль форматирования, который позволяет только вставлять шаблоны символов из белого списка" .Это означает, что ваш шаблон должен просто соответствовать любой 1 цифре или 1 точке.

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

Использовать

WhitelistingTextInputFormatter(RegExp(r"[\d.]"))

Обратите внимание, что если вы хотите проверить весь ввод последовательность , вам нужно определить validator: validateMyInput, а затем добавить

String validateMyInput(String value) {
    Pattern pattern = r'^\d+(?:\.\d+)?$';
    RegExp regex = new RegExp(pattern);
    if (!regex.hasMatch(value))
      return 'Enter Valid Number';
    else
      return null;
  }

Адаптировано с Проверка формы во флаттере .

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