我想让用户只添加数字“12345”和十进制数字,如“21321.12312”和负数,如-23423.32432。用户不应该能够添加多个“。” 像“12..32”并在输入的第一个添加“-”,如 -324.34 而不是 324-4323。我使用了这个正则表达式r'^(-?\d+\.\d+)(\s*,\s*-?\d+\.\d+)+$'
,但无法输入任何内容。
文本字段代码:
TextFormField(
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'^(-?\d+\.\d+)(\s*,\s*-?\d+\.\d+)+$')),
],
controller: budget,
keyboardType: TextInputType.number,
decoration: InputDecoration(
contentPadding:
EdgeInsets.only(right: 20, left: 20, top: 10, bottom: 10),
hintText: getTranslated(context, "budget_example"),
hintStyle: TextStyle(fontSize: 13, fontFamily: "tahoma"),
border: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: MyColors.secondary),
borderRadius: BorderRadius.circular(100),
),
),
),