3

我如何在颤动中删除电话号码的第一个零,如 00963 和 031 等TextFormField
这是我的代码TextFormField

TextFormField(
             keyboardType: TextInputType.phone,
              onSaved: (input) => _con.user.phone = input,
             ),

我的问题不是要阻止用户输入零,而是要在用户输入与否的情况下使用没有第一个零的电话号码来获取它

4

3 回答 3

3

如果您想从电话号码中删除所有第一个零,只需使用此正则表达式:

 new RegExp(r'^0+')

^ - 匹配一行的开头

0+ - 匹配零位字符一次或多次

TextFormField 的最终代码:

TextFormField(
  keyboardType: TextInputType.phone,
  onSaved: (input) => _con.user.phone = input.replaceFirst(new RegExp(r'^0+'), '');,
),
于 2020-10-15T08:56:09.147 回答
1
      String phone = '000345';
      String editedPhone = phone.replaceFirst(RegExp(r'^0+'), "");
      print(phone);
      print(editedPhone);

将打印:

000345
345
于 2020-10-15T08:54:51.093 回答
1

上面的答案是正确的,但是如果您使用**TextFormField**以下示例将是值得的,

TextFormField(
   controller: familyMemberPhoneController,
   inputFormatters: [
     FilteringTextInputFormatter.allow(RegExp('[0-9]')),
     //To remove first '0'
     FilteringTextInputFormatter.deny(RegExp(r'^0+')),
     //To remove first '94' or your country code
     FilteringTextInputFormatter.deny(RegExp(r'^94+')),
                  ],
...
于 2021-09-30T10:01:48.107 回答