본문 바로가기

Flutter

[Flutter] TextField 특정 문자열만 입력 가능하게 하기

처음에는 아래 코드처럼 특수문자만 입력을 막아보려 했으나..

TextField(
        inputFormatters: [
          FilteringTextInputFormatter.deny(RegExp('[!@#\$%^&*(),.?":{}|<>]')),
        ],
        ),

 

언어의 구조상 모두 막을 수 없다는 것을 알게었습니다.

그리하여 허용되는 값만 입력받도록 변경했습니다.

 

[한글만 입력]

만약 공백 까지 포함하려면 '힣' 뒤에 스페이스바로 한번 띄어주기(이하 동일)

TextField(
    inputFormatters: [
      FilteringTextInputFormatter.allow(RegExp(r'[ㄱ-ㅎ가-힣]')),
    ],
    ),

 

[영문만 입력]

TextField(
    inputFormatters: [
      FilteringTextInputFormatter.allow(RegExp(r'[a-zA-Z]')),
    ],
    ),

 

[숫자만 입력]

TextField(
    inputFormatters: [
      FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
    ],
    ),