-999 と 999 の間の数値のみを入力できるように、TextFormField でフラッターに正規表現を使用したいと考えています。式をテストしたところ、すべてが希望どおりに機能しましたが、「なぜ書けないのかわかりません」 -」を TextFormField に追加します。最大数と、数字が 0 で始まらないことは完全に正常に機能しますが、常にマイナスを追加しようとすると機能しません。どんな助けにも感謝します!
TextFormField(
decoration: kTextFieldDecoration,
style: kCustomNumberBoxTextStyle,
keyboardType: TextInputType.numberWithOptions(signed: true),
textAlign: TextAlign.center,
initialValue: number.toString(),
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'^-?[1-9]([0-9]{1,2})?')),
],
onChanged: (String newValue) {
if (newValue != "") {
setState(() {
number = int.parse(newValue);
});
widget.onTap(int.parse(newValue));
}
},
),