Search code examples
flutterflutter-layoutflutter-dependencies

How to accept only numbers in TextFormFields?


I want to accept only numbers in TextFormFields. I have designed a TextFormField for accepting phone numbers. I have changed the keyboard type.

keyboardType: TextInputType.phone,

But, it can also accept special symbols or can paste other inputs also. Keyboard screenshots


Solution

  • Try below code, refer FilteringTextInputFormatter

    import below library

    import 'package:flutter/services.dart';
    

    Your Widget: 1st Way

        TextFormField(
           keyboardType: TextInputType.number,
           inputFormatters: [FilteringTextInputFormatter.digitsOnly],
        ),
    

    Your Widget: 2nd Way (Using RegExp )

    TextFormField(
      keyboardType: TextInputType.number,
      inputFormatters: [
        FilteringTextInputFormatter.allow(
          RegExp("[0-9]"),
        ),
      ],
    ),