Flutterで数字のみのテキスト形式を扱う方法


  1. 数字のみの入力を制限する: TextFieldウィジェットを使用して、ユーザーが数字以外の文字を入力できないようにすることができます。以下はその例です。
TextField(
  keyboardType: TextInputType.number,
  inputFormatters: <TextInputFormatter>[
    FilteringTextInputFormatter.digitsOnly
  ],
)

keyboardTypeTextInputType.numberに設定することで、数字キーボードのみが表示されます。inputFormattersのリストにFilteringTextInputFormatter.digitsOnlyを指定することで、数字以外の文字が入力されないようになります。

  1. 入力時に数字以外の文字を除外する: もしユーザーが数字以外の文字を入力した場合、それらを自動的に除外する方法もあります。以下のコード例を参考にしてください。
String extractDigits(String text) {
  return text.replaceAll(RegExp(r'[^0-9]'), '');
}

このextractDigits関数は、与えられたテキストから数字以外の文字を除外して数字のみの文字列を返します。以下はその使用例です。

String inputText = 'abc123def';
String extractedDigits = extractDigits(inputText);
print(extractedDigits); // 結果: '123'
  1. 正規表現を使用して数字のみのテキスト形式を検証する: 正規表現を使用して、与えられたテキストが数字のみで構成されているかどうかを検証する方法もあります。以下のコード例を参考にしてください。
bool isDigitsOnly(String text) {
  return RegExp(r'^[0-9]+$').hasMatch(text);
}

このisDigitsOnly関数は、与えられたテキストが数字のみで構成されている場合にtrueを返します。以下はその使用例です。

String inputText = '123';
bool isValid = isDigitsOnly(inputText);
print(isValid); // 結果: true