我想实现以下目标:
小数点前3位,小数点后1位(同时检查添加的起始3位数不应以0作为第一位)
- 正确:230.8、179.0、200.0等
- 不正确:012.4、002.5、12。、12.22、1.4、1.222
现在我有这个
TextFormField(
focusNode: participantHeightFocus,
// inputFormatters: [FilteringTextInputFormatter.digitsOnly],
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'^\d+\.?\d*$')),
],
validator: (value) {
if (value!.isEmpty) {
return "Height is required";
} else if (!RegExp(r'^\d+(\.\d+)').hasMatch(value)) {
return "Please enter the height in cm (e.g., 170.0 cm)";
}
return null;
},
controller: participantHeight,
onChanged: (_) => calculateBMIAndUpdate(),
decoration: InputDecoration(
hintText: "Participant Height (*)",
labelText: "Participant Height (*)",
labelStyle: const TextStyle(fontSize: 20),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5)),
),
),
字符串
它显示错误,但让我输入小数点前的许多数字和小数点后的许多数字,它还允许我以0开始我的数字,这是错误的
1条答案
按热度按时间bmvo0sr51#
试试这个:
字符串
如果您希望小数点和数字是可选的(如果例如170.0也可以写成170),稍微调整一下:
型
说明: