Flutter-TextFormField中的正则表达式

时间:2019-05-31 07:45:32

标签: regex flutter

我试图在文本表单字段中仅允许数字和点。

我有类似的东西

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

但是不起作用,因此:任何人都知道如何只能允许数字和点?

1 个答案:

答案 0 :(得分:1)

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;
  }

改编自Form Validation in Flutter