Restrict "0" in First Character in Flutter

Viewed 409

How to restrict "0" should not be placed at the first character in the text field in Flutter? Below is the sample dart code.

TextField(
                                          inputFormatters: <TextInputFormatter>[
                                            FilteringTextInputFormatter.allow(
                                                RegExp("[0-9\u0660-\u0669]")),
                                          ],
                                          keyboardType: TextInputType.number,
                                          focusNode: _nodeText1,
                                          controller: mobileNumber,
                                          decoration: InputDecoration.collapsed(
                                              fillColor: TuxedoColor.whiteColor,
                                              hintText: "5xxxxxxxx"),
                                        ),
2 Answers

Use this :

   inputFormatters: <TextInputFormatter>[
                                FilteringTextInputFormatter.allow(
                                  RegExp(r'[0-9]'),
                                ),
                                FilteringTextInputFormatter.deny(
                                  RegExp(
                                      r'^0+'), //users can't type 0 at 1st position
                                ),
                              ],

Try below code use FilteringTextInputFormatter.deny

TextField(
      inputFormatters: <TextInputFormatter>[
        FilteringTextInputFormatter.allow(RegExp("[0-9\u0660-\u0669]")),
        FilteringTextInputFormatter.deny(RegExp(r'^0+')),
      ],
      keyboardType: TextInputType.number,
      decoration: InputDecoration.collapsed(hintText: "5xxxxxxxx"),
    ),
Related