Flutter/기본

[Flutter] 정규식 모음 (TextField 적용가능)

주톨 2024. 7. 16. 18:15
728x90

 

 

정규식 모음

 

  • 숫자 1~3자리 (1, 12, 123)
  • 선택적으로 소수점 및 소수점 뒤의 숫자 최대 1자리 (1., 12., 123., 1.1, 12.1, 123.1)
  • 신장, 몸무게 입력 받는데 사용하면 좋음.
RegExp(r'^\d{1,3}(\.\d?)?')

 

1, 12, 123: 허용됨
1234: 허용되지 않음 (숫자가 3자리를 초과함)
1., 12., 123.: 허용됨 (소수점 뒤에 숫자가 없을 수도 있음)
1.1, 12.1, 123.1: 허용됨
123.12: 허용되지 않음 (소수점 뒤에 숫자가 1개를 초과함)


 

  • 숫자만 받는 정규식
RegExp(r'^\d*')

 

허용되는 입력: 123, 4567, 890
허용되지 않는 입력: 123a, 45.67, #890

 


 

 

  • 이메일 정규식
RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')

 

 

 


 

 

TextField 적용

inputFormatters: [
  FilteringTextInputFormatter.allow(RegExp(r'^\d{1,3}(\.\d?)?')),
  
  FilteringTextInputFormatter.allow(RegExp(r'^\d*')),
],

 

 

 

 

 

정규식 조건 검사

입력한 텍스트가 설정할 정규식에 맞는지 확인할 수 있습니다.

 

RegExp.hasMatch("텍스트") => bool

 

위에서 생성한 정규식의 hasMatch 함수를 사용하면 작성한 정규식에 맞으면 true, 틀리면 false를 반환합니다.