我目前具有正则表达式的验证功能,如下所示:
validateFormula(String value) {
String pattern = (r'^\d+\.\d{1,2}$');
RegExp regExp = new RegExp(pattern);
if (value.length == 0) {
return "Number cannot be empty";
} else if (!regExp.hasMatch(value)) {
return "Number not valid, always use decimal formaters. Ex: 1.0";
}
return null;
}
上面的代码在一个简单的计算器应用程序中运行以进行计算,但仅适用于十进制和十进制形式的输入数字。示例4.0 + 4.2
等。如下图所示:
但是,当我输入数字而不是十进制数字时,由于我创建的正则表达式仅用于十进制数字,因此不希望被计数。
如果我想算如下:
1.6 + 1
1.66 + 1.66
1.667 - 1.111
1 * 1
1.56 / 1.56
小数点后最多3位
答案 0 :(得分:0)
在这种情况下,您可以使用此正则表达式:
^[+-]?\d+((\.\d{,3})|\d*)$
允许正整数和负整数或十进制数字在小数点后最多三位。