我想在我的 TextFormField 上有一個顫動的正則運算式,只能輸入 -999 和 999 之間的數字。當我測驗運算式時,一切都按照我想要的方式作業,但我不知道為什么我不能寫“ -" 在 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));
}
},
),
uj5u.com熱心網友回復:
您的^-?[1-9]([0-9]{1,2})?正則運算式將初始連字符設為可選,這很好,但該[1-9]部分需要非零數字。此外,您錯過了$最后的錨點,正則運算式可以匹配第三個數字之后的任何內容。
為了能夠插入單個-,您需要將數字匹配部分設為可選。
您可以因此使用
^-?(?:[1-9][0-9]{0,2})?$
請參閱正則運算式演示。詳情:
^- 字串的開始-?- 一個可選的-字符(?:[1-9][0-9]{0,2})?- 一個可選的序列[1-9]- 一個非零數字[0-9]{0,2}- 任何零、一位或兩位數字
$- 字串的結尾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/385033.html
下一篇:如何在bash中替換檔案中的單詞
