Closed2
Dartで数値のフォーマットチェックを行う正規表現を作る
イコール0になる数字は設定させないパターンがreg
void main() {
final reg = RegExp(r'^[1-9]+[0-9]*(\.([1-9]*|[0-9]+[1-9]+))?$');
final reg2 = RegExp(r'^[0-9]+(\.([1-9]*|[0-9]+[1-9]+))?$');
print(reg.hasMatch('0')); // reg:false
print(reg.hasMatch('1'));
print(reg.hasMatch('9'));
print(reg.hasMatch('10'));
print(reg.hasMatch('99'));
print(reg.hasMatch('123.0')); // false
print(reg.hasMatch('123.00')); // false
print(reg.hasMatch('123.1'));
print(reg.hasMatch('123.09'));
print(reg.hasMatch('123.001'));
print(reg.hasMatch('123.0010')); // false
}
FlutterのTextFormField#inputFormatters
にて、
FilteringTextInputFormatter.digitsOnly
が用意されているが、整数だけなので、
小数点を含む形で対応できるよう設定するのに使う
TextFormField(
keyboardType: const TextInputType.numberWithOptions(signed: true, decimal: true),
inputFormatters: [FilteringTextInputFormatter.allow(RegExp(r'^[1-9]+[0-9]*(\.([1-9]*|[0-9]+[1-9]+))?$'))],
)
このスクラップは2023/05/22にクローズされました