我想允許這種輸入到我的文本欄位:
123
*123#
*123*4#
所以我創建并測驗了RegExr這個正則運算式的網站:
\**\d \**\d \#?
但是當我嘗試在文本欄位中輸入任何內容時
使用代碼:
...
keyboardType = TextInputType.phone;
// to allow digits with asterik and hash
final regex = RegExp(r'\**\d \**\d \#?');
inputFormatters = [FilteringTextInputFormatter.allow(regex)];
return TextField(
...
keyboardType: keyboardType,
inputFormatters: inputFormatters,
);
uj5u.com熱心網友回復:
如果您還想將變體與單個數字相匹配,例如*1#您可能會使用負前瞻來排除不能存在的內容:
^(?!.*\*[*#]|\d*#$)[*\d]*#?$
解釋
^字串的開始(?!負前瞻,斷言右邊不是.*\*[*#]匹配**或*#|或者\d*#$匹配可選數字和#字串末尾
)關閉前瞻[*\d]*#?匹配可選*字符或數字和可選#$字串結束
查看正則運算式演示。
uj5u.com熱心網友回復:
您可以使用
^\*?(?:\d \*?(?:\d #?)?)?$
請參閱正則運算式演示。
詳情:
^- 字串的開始\*?- 一個可選*字符(?:\d \*?(?:\d #?)?)?- 一個可選的序列\d- 一位或多位數字\*?- 一個可選的*
(?:\d #?)?- 一個或多個數字的可選序列和一個可選的#字符$- 字串結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483125.html
