Flutter TextFormField 폰 번호 양식 자동 완성 코드공부방/Flutter2023. 7. 4. 17:50
Table of Contents
핸드폰 번호를 입력하면 자동으로 '-'를 입력해 주는 TextField Formatter를 만들어 보려구 해요.
회원가입이나 여러가지 이벤트 페이지 정보 작성 시 핸드폰 번호를 입력할 일이 있으면 쉽게 사용 가능해요.
물론 라이브러리를 사용해도 되긴 하지만 이정도는 그냥 코드로 만들어보아요.
아래코드로 얼마든지 다른 형식도 응용이 가능하니 유용하게 사용해 주세요.
PhoneNumberTextInputFormatter.dart
import 'package:flutter/services.dart';
class PhoneNumberTextInputFormatter extends TextInputFormatter {
///전체 번호 010-1234-5678 기준
final firstLength = 3; ///첫번째 번호 갯수 ex) 010 3개
final secondLength = 4; ///두번째 번호 갯수 ex) 1234 4개
final thirdLength = 4; ///세번째 번호 갯수 ex) 5678 4개
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
final int newTextLength = newValue.text.length;
int usedSubstringIndex = 0;
final StringBuffer newText = StringBuffer();
if (newTextLength >= firstLength + 1) {
newText.write('${newValue.text.substring(0, usedSubstringIndex = firstLength)}-');
}
if (newTextLength >= firstLength + secondLength + 1) {
newText.write('${newValue.text.substring(firstLength, usedSubstringIndex = firstLength + secondLength)}-');
}
if (newTextLength >= firstLength + secondLength + thirdLength + 1) {
newText.write(newValue.text.substring(firstLength + secondLength, usedSubstringIndex = firstLength + secondLength + thirdLength) );
}
if (newTextLength >= usedSubstringIndex) {
newText.write(newValue.text.substring(usedSubstringIndex));
}
return TextEditingValue(
text: newText.toString(),
selection: TextSelection.collapsed(offset: newText.length),
);
}
}
사용 방법
TextFormField(
....
keyboardType: TextInputType.phone,
inputFormatters : [
FilteringTextInputFormatter.allow(RegExp("[0-9/]")),
PhoneNumberTextInputFormatter(),
],)
반응형
'공부방 > Flutter' 카테고리의 다른 글
Execution failed for task ':app:mapDebugSourceSetPaths' (0) | 2023.08.14 |
---|---|
Flutter shorebird code push for android (0) | 2023.08.10 |
Flutter web 에서 Flutter app event call (0) | 2023.07.04 |
Flutter web build command (0) | 2023.07.04 |
Flutter 그려진 모든 원들이 연결 되도록 만들기 (Make all drawn circles connect) (0) | 2023.06.23 |
@soycrab :: 꿀맛코딩
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!