[flutter] TextFormField 특정 문자 제한 (Restrict Special Character Input Flutter) + flutter version up

adbr·2020년 8월 6일
2

TextFormField inputFormatters 이용

텍스트 WhitelistingTextInputFormatter

Creates a formatter that allows only the insertion of whitelisted characters patterns.
화이트리스트 문자 패턴만 작성할 수있는 formatter를 만듭니다.

텍스트 BlacklistingTextInputFormatter

Creates a formatter that prevents the insertion of blacklisted characters patterns.
블랙리스트에 포함 된 문자 패턴을 작성하지 못하게하는 formatter를 만듭니다.


둘다 사용 예시 코드

TextFormField(
  ...
  inputFormatters: [
    WhitelistingTextInputFormatter(RegExp("[a-zA-Z]")),
    BlacklistingTextInputFormatter(RegExp('[\\.]')),
  ],
  ...
)

실 화면 + 코드 적용

TextFormField(
  ...
  inputFormatters: [
    BlacklistingTextInputFormatter(RegExp('[\\#]')),
    BlacklistingTextInputFormatter(RegExp('[\\@]')),
  ],
  ...
)




+ Regex 참고 사이트

테스트 해볼수 있는 사이트

https://regex101.com/

regex 구문 참고

regex 정규식 앞머리 달고 구글링이 더 빠릅니다 :)




+ flutter upgrade 후

'BlacklistingTextInputFormatter'는 더 이상 사용되지 않으며 사용해서는 안됩니다. 대신 FilteringTextInputFormatter.deny를 사용하세요.이 기능은 v1.20.0-1.0.pre. 이후에 더 이상 사용되지 않습니다. 지원 중단 된 멤버의 사용을 대체 멤버로 바꾸세요.


[prev version] before

inputFormatters: [
  BlacklistingTextInputFormatter(RegExp('[\\@]')),
  BlacklistingTextInputFormatter(RegExp('[\\#]')),
]

after

inputFormatters: [
  FilteringTextInputFormatter.deny(RegExp('[\\@]')),
  FilteringTextInputFormatter.deny(RegExp('[\\#]')),
],
profile
𝙸 𝚊𝚖 𝚊 𝚌𝚞𝚛𝚒𝚘𝚞𝚜 𝚍𝚎𝚟𝚎𝚕𝚘𝚙𝚎𝚛 𝚠𝚑𝚘 𝚎𝚗𝚓𝚘𝚢𝚜 𝚍𝚎𝚏𝚒𝚗𝚒𝚗𝚐 𝚊 𝚙𝚛𝚘𝚋𝚕𝚎𝚖. 🇰🇷👩🏻‍💻

0개의 댓글