Dha*_*ara 1 regex regex-group dart flutter
正则表达式的要求:
我尝试在RegExr上生成相同的正则表达式,它满足了我的要求,但是当我将相同的内容应用于颤动表单 TextFormField 时,它不起作用。
正则表达式: ^[[0-9]{0,8}(\.[0-9]{1,4})?$|^[[0-9]{0,9}(\.[0-9]{1,3})?$|^[[0-9]{0,10}(\.[0-9]{1,2})?$|^[[0-9]{0,11}(\.[0-9]{1})?$|^[0-9]{0,12}
颤振文本字段代码:
TextFormField(
controller: _textEditingController,
keyboardType:TextInputType.numberWithOptions(decimal: true),
inputFormatters: <TextInputFormatter>[
WhitelistingTextInputFormatter(RegExp(r'^[[0-9]{0,8}(\.[0-9]{1,4})?$|^[[0-9]{0,9}(\.[0-9]{1,3})?$|^[[0-9]{0,10}(\.[0-9]{1,2})?$|^[[0-9]{0,11}(\.[0-9]{1})?$|^[0-9]{0,12}')),
],
),
Run Code Online (Sandbox Code Playgroud)
使用上面的代码我无法dot(.)在 TextFormField 中输入。
注意:用户不应在 中输入多于一位小数的数字TextFormField。
请注意,如果您想验证整个输入序列,您需要定义 avalidator: validateMyInput然后实现该函数:
String validateMyInput(String value) {
RegExp regex = new RegExp(r'^(?=\D*(?:\d\D*){1,12}$)\d+(?:\.\d{1,4})?$');
if (!regex.hasMatch(value))
return 'Enter Valid Number';
else
return null;
}
Run Code Online (Sandbox Code Playgroud)
更多详细信息请参阅Flutter 中的表单验证。
正则表达式是
^(?=\D*(?:\d\D*){1,12}$)\d+(?:\.\d{1,4})?$
Run Code Online (Sandbox Code Playgroud)
请参阅其演示。细节
^- 字符串的开头(?=\D*(?:\d\D*){1,12}$)- 字符串中需要 1 到 12 位数字\d+- 1 位或多位数字(?:\.\d{1,4})?.- 由 a和 1、2、3 或 4 位数字组成的可选序列$- 字符串末尾。| 归档时间: |
|
| 查看次数: |
5713 次 |
| 最近记录: |